常见的python爬虫
爬虫流程
第一步:确定爬虫对象(爬那个网页的数据);
第二步:找接口;
1)有接口:直接对借口发送请求 -> 成功(直接json
解析);
2)没有接口,进入下一步;
第三步:用requests直接对网页地址发送请求;
1)请求成功 -> 解析数据(bs4
、lxml
);
2)请求失败 -> 尝试添加user-agent和cookie,成功就解析,失败下一步;
第四步:用selenium打开网页,获取网页内容
1)请求成功 -> 解析数据(bs4
、lxml
);
2)请求失败 -> 找失败原因,尝试解决失败的问题 -> 问题无法解决下一步
第五步:放弃,换目标。
requests
使用代理ip
1.使用代理:给参数proxies
赋值
{‘https’;‘ip:端口’}
1)使用固定的代理ip
response = requests.get(url, headers=headers, proxies={'https': '端口号'})
2)通过请求获取代理ip
的地址动态获取最新的代理
ip = requests.get('代理服务器的端口网页').text.strip()
response = requests.get(url, headers=headers, proxies={'https': ip})
selenium使用代理ip
--proxy-server=http://IP:端口号
(ip
端口是https
的ip
)
options.add_argument('--proxy-server=http://122.6.202.214:4510')
requests
自动登录
第一步:在谷歌浏览器中打开网页完成登录操作,然后刷新网页;
第二步:打开当前页面的检测,在network
的all选项下,找到当前页面的请求,获取Request Headers
中的cookie
值;
第三步:在用requests
方式请求的时候给headers
赋值,在headrest
中添加cookie
对应的键值对。
selenium
自动登录
1.获取cookie
第一步:创建浏览器对象,打开需要自动登录的网站;
第二步:手动完成登录操作;
第三步:获取cookie并且保存到本地文件中;
cookie = 浏览器对象.get_cookie()
open(‘files/cookie.txt’, ‘w’, encoding='utf-8').write(str(cookies))
2.使用cookie
第一步:创建浏览器对象打开网页;
第二步:添加本地保存的cookie信息;
cookie_list = eval(open(‘files/cookie.txt’, encoding='utf-8').read())`
for cookie in cookie_list:
浏览器对象.add_cookie(cookie)```
第三步:重新打开网页;
第四步:进行后续其他操作
字体反爬
第一步:在目标网页上检查,选Notwork
->All
->重新刷新;
第二步:看Name下是否有结果,依次单击Name
下面的选项,找woff
或者woff2
的文件;
第三步:找到下载,https://kekee000.github.io/fonteditor/
这个网页中打开,就可以看见字体编码集;
第四步:将乱码字体和字体编码集解析出需要的字体。
到下载,https://kekee000.github.io/fonteditor/
这个网页中打开,就可以看见字体编码集;
第四步:将乱码字体和字体编码集解析出需要的字体。