点击上方“Python3X”,选择“置顶或者星标”
第一时间收到精彩推送!
有小伙伴问,新手该怎么开始学习爬虫。其实说实在的入门爬虫真的非常容易。于是我就针对如何入门爬虫进行了总结
爬虫三要素: 抓取、分析、存储
通过url进行网页的抓取,当我们请求一个网页时,先通过域名解析到对应的ip地址,然后向浏览器发送请求,建立历TCP链接,服务器返回网页的内容。再由浏览器对内容进行解析。
01
基础的抓取
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/fe9d393f1d13941b15a5cbc68f9561db.png)
1
urllib 在Python2.x中我们可以通过urllib 或者urllib2 进行网页抓取,但是再Python3.x 移除了urllib2。只能通过urllib进行操作
import urllib.requestresponse = urllib.request.urlopen('https://blog.csdn.net/weixin_43499626')print(response.read().decode('utf-8'))
response = urllib.request.urlopen('https://blog.csdn.net/weixin_43499626')
print(response.read().decode('utf-8'))
2
requests库是一个非常实用的HTPP客户端库,是抓取操作最常用的一个库。Requests库满足很多需求
import requests# get请求response = requests.get(url='https://blog.csdn.net/weixin_43499626') print(response.text) #打印解码后的返回数据# 带参数的requests get请求response = requests.get(url='https://blog.csdn.net/weixin_43499626', params={'key1':'value1', 'key2':'value2'}
# get请求
response = requests.get(url='https://blog.csdn.net/weixin_43499626')
print(response.text) #打印解码后的返回数据
# 带参数的requests get请求
response = requests.get(url='https://blog.csdn.net/weixin_43499626', params={
'key1':'value1', 'key2':'value2'}
02
需要登录的情况
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/fe9d393f1d13941b15a5cbc68f9561db.png)
1
表单提交登录 向服务器发送一个post请求并携带相关参数,将服务器返回的cookie保存在本地,cookie是服务器在客户端上的“监视器”,记录了登录信息等。客户端通过识别请求携带的cookie,确定是否登录
params = {'username': 'root', 'passwd': 'root'}response = requests.post("http:xxx.com/login", data=params)for key,value in response.cookies.items(): print('key = ', key + ' ||| value :'+ value)'root', 'passwd': 'root'}
response = requests.post("http:xxx.com/log