本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-10(4)

2020-11(15)

python3抓取淘宝评论内容

发布于2019-08-05 18:10     阅读(189)     评论(0)     点赞(4)     收藏(4)



好久没有写爬虫了,今天研究了下淘宝商品评论的内容。

一开始用最简单的方法,挂代理,加请求头,对网页请求,是抓不到数据的,在网上找了一些相关文章,也基本已经过时了,就是网站逻辑有改动,用旧的方法是抓不到的。研究了一下,终于有了结果。

1. 百度->淘宝,进入官网

最后选择男装->西装,进入宝贝详情页。下面开始打开调试模式,快捷键Ctrl + Shift + i

 

 2. 想办法找出评论内容所在地址。

先清空调试栏(点击如下):

然后刷新页面,Ctrl + R进行刷新。

下面就开始找评论在哪里。首先点击XHR,推测评论是有AJAX展示的,点击后发现不是。

再去Doc里面找找,也不是。那就从All里面一个一个找吧。

嘿,看到了一个东西,有点像:

切,也不对,接着往下找。

坚持不懈地努力下,终于找到了:

下面对这个url进行解析,只要能请求出来,那就没问题了。

3. 首先,直接添加headers,是请求不到的。那怎么办呢?一点点试呗。

最后尝试到,将请求头,请求参数全部加上,然后携带cookie,才能获取到内容,很难受。

因为,实际生产中,一旦需要验证cookie,才能获取正确响应的网站,我个人是没有太好的解决方法,只要抓取过快,就会被封掉。

代码如下:

import re
import requests

headers = {
            'Referer': 'https://item.taobao.com/item.htm?spm=a219r.lm874.14.173.2d324edc7BaCKr&id=591671671551&ns=1&abbucket=9',
            'User-Agent': '请添加自己的useragent',
            'cookie':"这里请添加你自己的cookie"
            }

url = 'https://rate.taobao.com/feedRateList.htm?'

query_params = {
            'auctionNumId': '569127696985',
            'userNumId': '2840752540',
            'currentPageNum': '1',
            'pageSize': '20',
            'rateType': '',
            'orderType': 'sort_weight',
            'attribute': '',
            'sku': '',
            'hasSku': 'false',
            'folded': '0',
            'ua': '098#E1hvhpvEvbQvU9CkvvvvvjiPRFM96jECP2M91j3mPmPv1jYbRFzUljtnPLLytjEHRsKjvpvhvvpvvvhCvvOvUvvvphvEvpCWm2KHvvwzaNoUkC4AVA1lYWmQrEt1pYsptbvqrADn9W2+FfmtEpcyTWexRdIAcUmDYE7reB6k1W29QCyawZ4Q0f0DW3CQog0HsXZpebyCvm9vvvvvphvvvvvv96CvpvB/vvm2phCvhRvvvUnvphvppvvv96CvpCCvkphvC99vvOCzpuyCvv9vvUv0cP8JVvGCvvpvvvvvRphvCvvvvvm5vpvhvvmv99==',
            '_ksTS': '1563849303999_1462',
            'callback': 'jsonp_tbcrate_reviews_list'
            }

response = requests.get(url=url, headers=headers, params=query_params).text
print(response)
contents = re.compile('"content":"(.*?)"').findall(response)
for content in contents:
    print(content)

代码没有任何封装,能看就行,不影响交流。至于翻页部分,就不再看了。







所属网站分类: 技术文章 > 博客

作者:哇哇

链接:https://www.pythonheidong.com/blog/article/6124/ae86f13e932cabe6de7d/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)