使用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 文件,这里的文件名可以随意起

原文地址:https://www.cnblogs.com/renshaoqi/p/11201675.html