使用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) + "\n")
return item
def close_spider(self, spider):
# 关闭文件
self.file.close()
配置文件(settings.py)
步骤一:关闭网址的robotstxt协议

步骤二:设置请求头

步骤三:激活管道文件

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

进入文件的目录下使用命令:scrapy crawl 爬虫名
方法② :使用文件运行
在文件的目录下创建run_spider.py 文件,这里的文件名可以随意起


浙公网安备 33010602011771号