Python 删除文章链接,然后删除该链接以获得文章中的作者
所以我使用scrapy--> 正如你在第一张图中看到的。我把文章放在左边。通过 [![查看此图片][1][1] 一旦我得到这个链接,我如何继续刮,然后移动到文章的链接,然后刮在那篇文章的内容。图2 这是我的代码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 =
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文件时,它只通过了第一个链接,而不是全部链接。您可以创建一个新函数来解析此请求,并将该函数传递到请求的回调参数中。