爬虫:数据采集
1.什么是爬虫
2.爬虫的分类
3.urllib库
urllib.request urllib.parse
urlopen(链接|请求头)
urllib.request.Request() #请求头对象
响应头对选对象response
4.几种常见反爬:
用户代理: 破解方案:伪造User-Agent
是不是人的行为: 破解方案:模拟人的行为time.sleep(random.randint(1,5))
屏蔽IP地址 破解方案:代理IP地址
5.get请求和post请求
HTTP1.0 5中请求访问 get post delete put head
HTTP1.1 增加了3中,共有8中请求请求 get post delete put head trace options connect
requests第三库的使用:开源于GitHub
1.安装与配置:
在线安装:在cmd输入pip install requests(python -m pip install requests)
安装requests库,遇到的问题
1.网络超时报错:pip --timeout=100 install requests -i http://pypi.douban.com/simple/
2.pip更换豆瓣源:pip3 install numpy -i http://pypi.douban.com/simple/
离线安装:
1.先到GitHub下载requests:https://github.com/psf/requests/release
2.解压压缩包
3.cd到压缩包
4.python setup.py install
2.requests库常见方法:(requests底层是)
import requests
dir(requests)
经常采集,爬取到数据并不一定符合你需要数据格式,一般就需要对采集的数据二次的筛选和过滤:
1.正则表达式 #只要返回的数据是文本字符串,优点:高效,缺点:入手比较难
2.xpath #DOM结构(“文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口)
3.json模块 #专门解析json字符串
4.JSONpath #专门解析json字符串
5.pyquery #跟jQuery库操作一致
6.bs4 #Beautifulsoup
一、xpath:可以解析xml的一种技术
1.#json–节点
{‘id’:1,“name”:“zs”,“nickname”:“张三”}
2.#xml可扩展性标记语言–元素
zs
张三
3.#html超文本标记语言,标签固定化–标记