我正在尝试使用Scrapy从此link中提取数据。我希望像前100个页面一样,在页面= 1的这些URL中循环,并提取<a href=\"/@eberhardgross\">\n
的每个实例。最终,只是尝试获取用户名,但页面上还有其他<a href="">
,但是如果我可以提取出很好的用户名,但是如果我必须得到所有的<a href="">
,那么我可以对它们进行排序并得到@。只是想知道我是否可以通过抓取来做到这一点?
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
def start_requests(self):
url = "https://www.pexels.com/leaderboard/all-time.js?format=js&seed=&page=%(page_number)s&type="
page_to_crawl = 100
for page_number in range(page_to_crawl):
yield scrapy.Request(url %{'page_number': page_number}, self.parse)
def parse(self, response):
usernames = response.xpath('//a[contains(@href, "@")]/@href').getall()
答案 0 :(得分:0)
要抓取多个页面,可以使用start_requests
对页面进行迭代:
def start_requests(self):
url = "https://www.pexels.com/leaderboard/all-time.js?format=js&seed=&page=%(page_number)s&type="
page_to_crawl = 100
for page_number in range(page_to_crawl):
yield scrapy.Request(url %{'page_number': page_number}, self.parse)
在您的parse
方法中,您可以通过xpath获取其中包含 @ 的HREF:
def parse(self, response):
usernames = response.xpath('//a[contains(@href, "@")]/@href').getall()
yield {
'usernames': usernames
}