码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-10-30 00:27:08      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:user   header   status   json   param   request   com   阶段   sts   

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

 

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

标签:user   header   status   json   param   request   com   阶段   sts   

原文地址:https://www.cnblogs.com/kaimobile/p/9874088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!