最近在学习Python爬虫,写博客记录一下我的第一个爬虫的创建过程
运行环境
Python3.0以上、Pycharm
相关消息获取
爬虫是模拟浏览器发出请求的,因此我们可以调用第三方requests库中的get请求来获取评论
而get请求中有三个参数,分别为url、params、header
URL的获取
我们需要找到能够返回评论的URL,之前的很多教程都是在网页源代码中找到的URL,但现在已经取消,用ajax动态加载,因此我们需要用chrome浏览器的控制台进行抓包。首先登陆淘宝,打开任意一个宝贝的页面,按f12进入控制台,选择network,按ctrl+R进行抓包。然后我们打开累计评论的第二页(第二页不容易被反爬),随便选择评论中的一句话,复制,在search中搜索
然后我们可以看到复制的评论已经搜索到,点击Headers,问号前的部分即为我们需要的URL
url="https://rate.tmall.com/list_detail_rate.htm"#获取返回评论的URL
params的获取
params用于添加到URL的请求字符串中,同样在刚刚的Headers中,向下翻可找到QueryStringParameters
其中ItemId、sellerId、currentpage、order、callback都是我们需要的
params={
"itemId" :"20762164858",
"sellerId" :"779529792",
"currentPage" :i,#i用于表示页数,等等会在循环中使用
"order" :"3",
"callback" :"jsonp566",
}
headers的获取
headers即请求头与http协议有关,我们需要在headers中写入cookie、user-agent、referer三项,这三项均可在刚刚的Header中找到,要注意cookie要与params中的callback对应,否则无法得到响应(之前的教程中都没有cookie,但淘宝更新后,不添加cookie会自动跳转到登录界面,所以必须加)
header={
"cookie":"cna=CKNiFp8nOl4CATFOr7ieFJ3M; hng=CN%7Czh-CN%7CCNY%7C156; lid=%E8%91%A3%E6%96%87%E9%9F%AC1002; enc=1j0Gy%2Fb%2F3Hdnzhza%2FtUdD9RqdCuL8QaPzzTy%2FYMyYaADA8cViSQC5%2FYXtNHptAaPDyPd92bHhDKxxgrBlzyDIw%3D%3D; uc1=cookie14=UoTbmVnVwb9ePg%3D%3D; t=99fe5d412b02db800ee8cd1975efc07d; uc3=lg2=W5iHLLyFOGW7aA%3D%3D&id2=UNQ%2BpO1xdZK6UA%3D%3D&nk2=1VAtBvTMWv6LtA%3D%3D&vt3=F8dByuQBIbkTI5itVoY%3D; tracknick=%5Cu8463%5Cu6587%5Cu97EC1002; uc4=nk4=0%4014w9yJPJPTHwS3Df7cJ%2BhcIiwsRM&id4=0%