热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Python爬虫系列初探:爬取旅游评论

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python爬虫系列-初探:爬取旅游评论相关的知识,希望对你有一定的参考价值。Python爬虫目前是基于reques

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python爬虫系列 - 初探:爬取旅游评论相关的知识,希望对你有一定的参考价值。


Python爬虫目前是基于requests包,下面是该包的文档,查一些资料还是比较方便。

http://docs.python-requests.org/en/master/

爬取某旅游网站的产品评论,通过分析,获取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: rMozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0,
Accept: rapplication/json, text/Javascript, */*; q=0.01,
Accept-Language: ren-US,en;q=0.5,
Accept-Encoding: rgzip, deflate, br,
Content-Type: rapplication/x-www-form-urlencoded; charset=UTF-8,
X-Requested-With: rXMLHttpRequest,
Content-Length: 65,
DNT: 1,
Connection: rkeep-alive,
TE: rTrailers
}
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,也算是为了服务器减负吧。

 


推荐阅读
author-avatar
Yuki_沐1824355667
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有