Python 删除文章链接,然后删除该链接以获得文章中的作者

Python 删除文章链接,然后删除该链接以获得文章中的作者,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,所以我使用scrapy--> 正如你在第一张图中看到的。我把文章放在左边。通过 [![查看此图片][1][1] 一旦我得到这个链接,我如何继续刮,然后移动到文章的链接,然后刮在那篇文章的内容。图2 这是我的代码 import scrapy class QuotesSpider(scrapy.Spider): name = "japan" allowed_domains = ['www.japantimes.co.jp/'] start_urls =

所以我使用scrapy-->

正如你在第一张图中看到的。我把文章放在左边。通过

[![查看此图片][1][1] 一旦我得到这个链接,我如何继续刮,然后移动到文章的链接,然后刮在那篇文章的内容。图2

这是我的代码

import scrapy

class QuotesSpider(scrapy.Spider):
    name = "japan"
    allowed_domains = ['www.japantimes.co.jp/']
    start_urls = ['https://www.japantimes.co.jp/']

def parse(self, response):
    all_articles = response.xpath('//div[@class ="section_title small single_block"]]')


    for links in all_articles:
        the_link = links.xpath('.//a/@href').extract_first()

既然我有了链接,那么我该如何刮取每个链接中的数据呢?

要让你的爬行器发出新的请求,你需要
请求
对象提交给scrapy的引擎

from scrapy import Request
...
yield Request(url=URL_OF_THE_PAGE, callback=CALLBACK_PARSE_FUNCTION)


但是,在您的情况下,您应该确保
链接
变量中有一个URL。修复后,请检查url是否为绝对url,如果不是,您可以使用
response.urljoin(链接)
以您的响应url作为基本域来构建url。

谢谢,这非常有效。但是,当我在for循环中调用yield Request(url=url\u,属于页面,callback=callback\u PARSE\u函数)时,它会反复发送相同链接到回调函数。它不会显示所有不同的链接。当我查看.json文件时,它只通过了第一个链接,而不是全部链接。您可以创建一个新函数来解析此请求,并将该函数传递到请求的回调参数中。