我得到所有的锚链接,而不是具体的链接

2024-06-26 15:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是scrapy 1.0.3。这是我的蜘蛛文件代码

from scrapy import Spider
from scrapy.selector import Selector
from parser_xxx.items import XxxItem

class XxxSpider(Spider):
    name = "xxx"
    allowed_domains = ["xxx.xxx.com"]
    start_urls = ["http://xxx.xxx.com/jobs/"]

    def parse(self, response):
        quelist = Selector(response).xpath('//div[@id="job_listings"]')
        for que in quelist:
           item = XxxItem()
           item['title'] = que.xpath('//a//h4/text()').extract()
           item['link']  = que.xpath('//a/@href').extract()
           yield item

但是,我得到所有的锚链接和所有的标题。我哪里错了?在

提前谢谢!在


Tags: fromimportcomresponseextractitemselectorxpath
1条回答
网友
1楼 · 发布于 2024-06-26 15:30:42

您必须在XPath表达式前面加一个点,使其与上下文相关。另外,我认为您应该用id="job_listings"遍历div中的链接:

quelist = response.xpath('//div[@id="job_listings"]//a')
for que in quelist:
   item = XxxItem()

   item['title'] = que.xpath('.//h4/text()').extract()
   item['link']  = que.xpath('@href').extract()

   yield item

相关问题 更多 >