笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

使用浏览器的开发人员工具进行抓取

发布者: 笨鸟自学网



如果我们现在重新加载页面,您将看到日志中填充了六个新的请求。

包含持久日志和请求的网络选项卡

在这里,我们可以看到在重新加载页面时发出的每个请求,并且可以检查每个请求及其响应。因此,让我们找出我们的报价来自哪里:

首先单击带有名称的请求 scroll . 在右边,您现在可以检查请求。在 Headers 您将找到有关请求头的详细信息,例如URL、方法、IP地址等。我们将忽略其他选项卡并直接单击 Response .

你应该在里面看到什么 Preview 窗格是呈现的HTML代码,这正是我们调用 view(response) 在贝壳里。相应地 type 日志中的请求为 html . 其他请求的类型如下 css 或 js 但是我们感兴趣的是一个要求 quotes?page=1 与类型 json .

如果我们点击这个请求,我们会看到请求的URL是 http://quotes.toscrape.com/api/quotes?page=1 响应是一个包含我们的引号的JSON对象。我们也可以右键单击请求并打开 Open in new tab 以获得更好的概述。

json-从quotes.tscope api返回的对象

有了这个响应,我们现在可以轻松地解析JSON对象,并请求每个页面获取站点上的每个引用:

import scrapy
import json


class QuoteSpider(scrapy.Spider):
    name = 'quote'
    allowed_domains = ['quotes.toscrape.com']
    page = 1
    start_urls = ['http://quotes.toscrape.com/api/quotes?page=1']

    def parse(self, response):
        data = json.loads(response.text)
        for quote in data["quotes"]:
            yield {"quote": quote["text"]}
        if data["has_next"]:
            self.page += 1
            url = f"http://quotes.toscrape.com/api/quotes?page={self.page}"
            yield scrapy.Request(url=url, callback=self.parse) 

上一篇:宽爬行下一篇:选择动态加载的内容

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 11:11 , Processed in 0.019198 second(s), 17 queries .

© 2001-2020

返回顶部