用Python写一个的爬虫。对于Python这个脚本语言来说写爬虫不是一件很难的事情。在写爬虫之前我们先了解一些简单的爬虫知识。爬虫分类:1. 通用网络爬虫 百度,门户网站
2. 聚焦网络爬虫
3. 增量式网络爬虫
4. 深层页面爬虫简单爬虫架构:1. URL管理器 Universal Resource Location
2. 网页下载器
3. 网页解析器
4. 输出管理器Python实现网页解析的常用工具1. 正则表达式 Regular Expression
2. Lxml库 Xpath语法 HTML XML<div><p>你好</p></div>
3. BeautifulSoup BS常见爬虫框架Scrapy 最流行
Pyspider 国人编写
Cola  分布式爬虫框架下面我们先写一个简单的爬虫:
爬取百度logo
>>> import requests
>>> response = requests.get('https://www.baidu.com/img/bd_logo1.png')
>>> with open('logo.png','wb') as logo:
...     logo.write(response.content)
...response.text
response.encoding
response.content
response.status_code上述爬虫打开百度首页就可以看到一个百度的logo。我们做的事就是将那个logo爬出来。
简单的爬取像上述即可,当我们需要爬取很多数据的时候我们就需要将自己伪装一下,避免被爬取的网站将你的ID封掉。怎么做呢?
我们可以将请求头更换为一个浏览器做一个迷惑。
方法如下:
定制请求头
>>> headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36'}{}中间的User-Agent是怎么来的呢?
具体做法如下:下面是一个百度首页,我们按F12就会出现如下界面,没有的话刷新一下。最下面我们就可以看到一个user-agent,这个东西就是请求头。我们复制即可。当然其他浏览器也可以。下面我们就来做一个爬安居客租房信息:#爬取安居客西安租房信息import requests          #import引入各种库
from lxml import etree
import csv
import time
import random
from pip._vendor.msgpack.fallback import newlist_hintdef spider():  #定义抓取函数headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36'}#定制一个请求头,伪装成浏览器prefix_url = 'https://xa.zu.anjuke.com/fangyuan/p'#爬取的网站页面for i in range(1, 10 ):url = prefix_url + str(i)html = requests.get(url, headers=headers)selector = etree.HTML(html.text)house_list = selector.xpath('//*[@id="list-content"]/div')house_list=house_list[2:-2]#去除列表头尾不是房源列表的divfor house in house_list:title = house.xpath('div[1]/h3/a/text()')[0]area = house.xpath('div[1]/p[1]/text()')[0]unit_price = house.xpath('div[2]/p/strong/text()')[0]span = house.xpath('div[1]/p[2]/span[1]/text()')[0]square = house.xpath('div[1]/p[1]/text()[2]')[0]print(title,area,unit_price,span,square)item = [title,area,unit_price,span,square]#保存数据data_write(item)# 休息2-3秒time.sleep(random.randint(2, 3))
def data_write(item):#定义保存函数with open('fangyaun.csv','a',encoding='utf-8',newline='') as file:writer = csv.writer(file)writer.writerow(item)# 定义一个主函数
if __name__ == '__main__':spider()

一个简单的爬虫算是完成了。分享使人快乐,越分享、越快乐。

分享爬虫的简单知识。附带爬虫案例。相关推荐

  1. 【Python 爬虫】简单的网页爬虫

    这边有一个用来测试的网站点击跳转 简单的网页爬虫 requests的使用 使用requests获取网页的源代码 requests与正则结合 多线爬虫 多进程库 开发多线程爬虫 爬虫算法的开发 深度优先 ...

  2. 爬虫(一):爬虫的基础知识 ---通用爬虫和聚焦爬虫,http和https协议,常见的响应状态码

    一.爬虫的定义 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 二.爬虫可以解决的问题 解决冷启动问题 搜索引擎的根基. -通用爬虫 帮助机器学习建立知识图谱 制作各种比价软件 三 ...

  3. python 微信爬虫_python3简单实现微信爬虫

    使用ghost.py 通过搜搜 的微信搜索来爬取微信公共账号的信息 # -*- coding: utf-8 -*- import sys reload(sys) import datetime imp ...

  4. java怎么写网络爬虫_教你如何编写简单的网络爬虫

    一.网络爬虫的基本知识 网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念.爬虫如何遍历网络呢,互联网可以看做是一张大图,每个页面看做其中的一个节点,页面的连接看做是有向边.图 ...

  5. Python网络爬虫(一):爬虫基础

    Python网络爬虫(一)爬虫基础 一.爬虫基础 1.HTTP基本原理 1.1URI和URL URI,全称:Uniform Resource Identifier,即统一资源标志符:URL,全称:Un ...

  6. nodejs爬虫与python爬虫_爬虫知多少-(NodeJS 爬虫)

    不久前在公司做了一个关于爬虫的分享,简单介绍了网络爬虫的基础知识.爬虫的运作方式.抓取策略.攻防方式以及如何使用 NodeJS 进行爬虫开发, 在这里分享给各位同学分享一下~ 一.爬虫简介 二.爬虫的 ...

  7. Python之网络爬虫(爬虫基本认知、网络爬虫之路)

    文章目录 一.爬虫基本认知 二.爬虫之路 初级爬虫工程师 中级爬虫工程师 高级爬虫工程师 一.爬虫基本认知 1.爬虫的简单定义 网络爬虫,又称为网页蜘蛛.蚂蚁.蠕虫.模拟程序,在FOAF社区中,被称为 ...

  8. (一)python网络爬虫(理论+实战)——爬虫的初步认识

    小白都能学会的python网络爬虫专栏: https://blog.csdn.net/c1007857613/category_12127982.html 序言 本人从事爬虫相关工作已8年以上,从一个 ...

  9. 爬虫(20)Scrapy知识补充+腾讯招聘案例+古诗文详情页+总结

    文章目录 第十八章 腾讯招聘案例 1. 腾讯招聘案例 2. 代码实现 2.1 配置项目 2.2 解析数据 2.3 翻页处理 2.4 获取详情页信息 3. 古诗词网补充 3.1 验证是否在源码中 3.2 ...

最新文章

  1. 有人说 Maven 很简单,我却被 伤害 过
  2. MPB:林科院袁志林组-利用acdSf3/acdSr4引物快速鉴定产ACC脱氨酶细菌
  3. 3层交换机和2层交换机的区别
  4. OSI 七层参考模型
  5. 【Network Security!】Web安全学习及异或解密示例
  6. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...
  7. php模拟登录qq邮箱_PHP 利用QQ邮箱发送邮件的实现
  8. SpringBoot整合Redis集群版本问题
  9. Servlet中参数获取方法
  10. Asp.Net递归遍历页面控件实例
  11. spring securiy使用总结
  12. android 阿拉伯语下布局,android设计的布局在阿拉伯语下界面错乱的解决方法
  13. 昆腾助用户步入大数据和云时代
  14. 夏普(SHARP) LS050T1SX01 液晶屏接口定义
  15. 逻辑左移、算术左移、逻辑右移、算术右移
  16. java mybatis多层collection嵌套查询
  17. 工作杂谈001-供应商对接
  18. 2021湖南耒阳二中高考成绩查询,来自耒阳各校的高考喜报
  19. IT讲师韩顺平:创业不易,尚硅谷延续教育初心
  20. HDU 5761 Rower Bo

热门文章

  1. Apache doris物化视图
  2. 路由器android-267d3f,这才是真的高级货玩意:NETGEAR EX7700 AC2200三频无线Mesh扩展器使用体验...
  3. 石英晶体谐振器主要参数
  4. seo优化后多久能够看见效果
  5. 杭州卫星地图 百度卫星地图(含道路、标签信息叠加)
  6. GOF 面向对象 23 种设计模式详解
  7. pcie扰码的作用_CDMA中扰码的作用
  8. 泡沫经济中的移动开发者
  9. 【拆书】《深度工作》教你时间管理
  10. 人性的弱点 --卡耐基