zoukankan      html  css  js  c++  java
  • 使用Scrapy爬取知乎网站马化腾所有粉丝的信息

    采集网址:https://www.zhihu.com/people/ponyma/followers

    爬虫文件

    import scrapy
    import json
    
    
    class ZhihuSpider(scrapy.Spider):
        name = 'zhihu'
        allowed_domains = ['zhihu.com']
        start_urls = [
            f'https://www.zhihu.com/api/v4/members/ponyma/followers?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset={offset}0&limit=20'
            for offset in range(0, 200, 20)]
    
        def parse(self, response):
            # 打印请求头
            # print(response.request.headers)
            json_data = json.loads(response.text)
            if json_data.get("data", False):
                for data in json_data['data']:
                    item = data
                    yield item
    

    此网址采用抓包方式爬取

    步骤一:打开采集网址 右边右键选择检查或者F12打开开发者模式

    步骤二:

    步骤三:点击页面中的下一页,注意不用刷新整个页面

     步骤四:点击Headers找到对应请求网址

     

    管道文件(pipelines.py)

    import json
    
    
    class ZhihuspiderPipeline(object):
    
        def __init__(self):
            # 打开文件
            self.file = open("zhihu.json", "a", encoding="utf-8")
    
        def process_item(self, item, spider):
            self.file.write(json.dumps(item, ensure_ascii=False) + "
    ")
            return item
    
        def close_spider(self, spider):
            # 关闭文件
            self.file.close()
    

      

    配置文件(settings.py)

    步骤一:关闭网址的robotstxt协议

    步骤二:设置请求头

    步骤三:激活管道文件 

    运行程序

    方法① :使用终端执行文件

      进入文件的目录下使用命令:scrapy crawl 爬虫名

    方法② :使用文件运行

       在文件的目录下创建run_spider.py 文件,这里的文件名可以随意起

  • 相关阅读:
    python中的unlink
    if
    python中if __name__ == '__main__'
    rename函数
    win2003的密钥
    url
    python中的os.stat
    python中的mysql
    防火墙
    网址
  • 原文地址:https://www.cnblogs.com/renshaoqi/p/11201675.html
Copyright © 2011-2022 走看看