Python爬虫系列 - 初探:爬取旅游评论
程序员文章站
2022-07-02 22:51:10
Python爬虫目前是基于requests包,下面是该包的文档,查一些资料还是比较方便。 http://docs.python-requests.org/en/master/ 爬取某旅游网站的产品评论,通过分析,获取json文件需要POST指令。简单来说: GET是将需要发送的信息直接添加在网址后面 ......
python爬虫目前是基于requests包,下面是该包的文档,查一些资料还是比较方便。
爬取某旅游网站的产品评论,通过分析,获取json文件需要post指令。简单来说:
- get是将需要发送的信息直接添加在网址后面发送
- post方式是发送一个另外的内容到服务器
那么通过post发送的内容可以大概有三种,即form、json和multipart,目前先介绍前两种
1.content in form
content-type: application/x-www-form-urlencoded
将内容放入dict,然后传递给参数data即可。
payload = {'key1': 'value1', 'key2': 'value2'} r = requests.post(url, data=payload)
2. content in json
content-type: application/json
将dict转换为json,传递给data参数。
payload = {'some': 'data'} r = requests.post(url, data=json.dumps(payload))
或者将dict传递给json参数。
payload = {'some': 'data'} r = requests.post(url, json=payload)
然后贴一下简单的代码供参考。
import requests import json def getcommentstr(): url = r"https://package.com/user/comment/product/querycomments.json" header = { 'user-agent': r'mozilla/5.0 (windows nt 10.0; win64; x64; rv:62.0) gecko/20100101 firefox/62.0', 'accept': r'application/json, text/javascript, */*; q=0.01', 'accept-language': r'en-us,en;q=0.5', 'accept-encoding': r'gzip, deflate, br', 'content-type': r'application/x-www-form-urlencoded; charset=utf-8', 'x-requested-with': r'xmlhttprequest', 'content-length': '65', 'dnt': '1', 'connection': r'keep-alive', 'te': r'trailers' } params = { 'pageno': '2', 'pagesize': '10', 'productid': '2590732030', 'ratestatus': 'all', 'type': 'all' } r = requests.post(url, headers = header, data = params) print(r.text) getcommentstr()
小技巧
- 对于cookies,感觉可以用浏览器的编辑功能,逐步删除每次发送的cookies信息,判断哪些是没有用的?
- 对于测试代码阶段,我还是比较习惯于将爬取的数据存为str,也算是为了服务器减负吧。