• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

学习笔记 ---爬虫(10)爬虫常用工具fiddler 和postman

武飞扬头像
你的名字(python爬虫爱好者)大二了
帮助1

        在学django的时候因为自己爬虫还有很多节课没有学习.

        本节记录自己学习爬虫基础之爬虫工具的使用,加一个微博指数的小案例.

目录

一, 抓包工具fiddler

二, 爬虫辅助工具postman

@微博指数('病毒')小案例.

&励志语录


一, 抓包工具fiddler

        我是看不懂英文,都怪英语没有学好.唉后悔了.不管了,咱们继续讲解.

        学新通

 学新通

 设置这么可以开始操作啦.为什么用抓包工具,因为有一些包在浏览器使用时一闪而过,例如我们等下操作的"国家信息安全漏洞共享平台,这个网页"

学新通

这个时候就需要用抓包工具fiddler来抓这个状态码为521的包.因为里面有我们需要的能否成功访问这个网页的重要信息.

首先

        1.清空fiddler里面的包.

        2. 然后清空谷歌浏览器缓存,然后点击这个网页刷新.

学新通

学新通

学新通

 学新通

 解码后就成为html语言啦.开始.你的爬虫吧.里面就有js,css包,动态数据包|静态都有.学新通

 其实fiddler都是为爬虫作为前面的辅助工具.

二, 爬虫辅助工具postman

        postman其实是一款特别强大的软件.作为爬虫辅助工具真的是屈才啦.

        作用: 在爬虫成功访问网页之前,不知道需要带哪些headers才能正确访问,

        所有,我们在post里面能模拟浏览器访问需要哪些headers

        这里我终于在post里面安装了汉化包.唉,看不懂英文.

学新通

去浏览器访问微博指数. 学新通

 学新通

今天的小案例我们以搜索指数为'病毒'为例.进行爬取他的实时指数.

 为了成功访问这个网页.我们把这个网页的url 复制到postman里进行测调出的必带headers信息.

 学新通

 学新通

 像下面这样.

学新通

经过不断的调试,最后发现所需要的headers信息为

host, referer, agent,  即可.其他多余的可带可不带,但是有时候带多余的会遇到反爬,少带也一样.所有干脆少带多余的,减少代码量.

开始小实战.

@微博指数('病毒')小案例.

  1.  
    """
  2.  
    这里写的是面向对象编程.
  3.  
    """
  4.  
     
  5.  
    import requests
  6.  
    from jsonpath import jsonpath
  7.  
    import csv # 这个包是为了将爬取的数据以csv后缀保存.方便数据分析
  8.  
     
  9.  
     
  10.  
    class webozhishu(object):
  11.  
     
  12.  
     
  13.  
    def __init__(self, i):
  14.  
    self.url = 'https://data.weibo.com/index/ajax/newindex/getchartdata'
  15.  
    self.headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) '
  16.  
    'AppleWebKit/605.1.15(KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/'
  17.  
    '604.1X-Requested-With: XMLHttpRequest',
  18.  
    'Host': 'data.weibo.com',
  19.  
    'Referer': 'https://data.weibo.com/index/newindex?visit_type=trend&wid=1091324264913',
  20.  
    }
  21.  
    # self.a = input('请输入查看的时间[1hour, 1day, 1month, 3month]:')
  22.  
    self.i = i
  23.  
    self.data = {
  24.  
    'wid': '1091324264913',
  25.  
    'dateGroup': '{}'.format(i)
  26.  
    }
  27.  
     
  28.  
    def request(self, url):
  29.  
    response = requests.post(url, headers=self.headers, data=self.data)
  30.  
    if response.status_code == 200:
  31.  
    return response.json()
  32.  
     
  33.  
    def parse(self, data_json):
  34.  
    times = jsonpath(data_json, '$..x')[0]
  35.  
    exponents = jsonpath(data_json, '$..s')[0]
  36.  
     
  37.  
    f = open('weibo_{}.csv'.format(self.i), 'w', encoding='gbk', newline='') # 这里我遇到一个问题,不能以with点open打开,打开在下面为csv文件添加数据时报错,必须以这样的形式.
  38.  
    csv_w = csv.writer(f)
  39.  
    csv_w.writerow(['病毒', '时间', '指数']) # 这里必须要以列表的形式添加数据.
  40.  
    for time, exponent in zip(times, exponents):
  41.  
    csv_w.writerow(['病毒', time, exponent])
  42.  
    print(time, '---->', exponent)
  43.  
     
  44.  
    f.close()
  45.  
     
  46.  
    def start_req(self):
  47.  
    data = self.request(self.url)
  48.  
    self.parse(data)
  49.  
     
  50.  
     
  51.  
    if __name__ == '__main__':
  52.  
    list_time = ['1hour', '1day', '1month', '3month'] # 这里是据分析,参数的改变为指数时间
  53.  
    for i in list_time:
  54.  
    webo = webozhishu(i)
  55.  
    webo.start_req()
学新通

学新通

 学新通

 成功获取数据.

今天就学习到这里,散会.

        等等,励志语录还没有看呢.

&励志语录

          虽然我走得很慢,但我从不后退!

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfjhha
系列文章
更多 icon
同类精品
更多 icon
继续加载