当前位置: 移动技术网 > IT编程>脚本编程>Python > Python爬虫系列 - 初探:爬取旅游评论

Python爬虫系列 - 初探:爬取旅游评论

2018年10月30日  | 移动技术网IT编程  | 我要评论

千载两宫长空寂,高速公路天气预报,国际法规

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,也算是为了服务器减负吧。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网