gpt4 book ai didi

python - 我无法抓取网站的 div 参数(scrapy)

转载 作者:行者123 更新时间:2023-11-28 01:49:25 25 4
gpt4 key购买 nike

我正在使用 scrapy 获取此 website 的信息

我要抓取的代码具有以下结构:

<div id="llista-resultats">
<div>
<h3>
<a href="URL"> Title </a>
<div class="dades">
<dl>
<dt> </dt>
<dd> </dd>
...
</div>
<div>
And repetar again

我已经完成测试并且我知道如何获取信息,但是我在使用以下代码时遇到的问题是我获取了所有标题,然后是所有 URL 等,我想要的是选择第一个标题第一个网址。

class BcnSpider(CrawlSpider):
name = 'bcn'
allowed_domains = ['guia.bcn.cat']
start_urls = ['http://guia.bcn.cat/index.php?pg=search&q=*:*']

def parse(self, response):
sel = Selector(response)
sites = sel.xpath("//div[@id='llista-resultats']")
items = []
for site in sites:
item = BcnItem()
item['title'] = site.xpath("//div[@id='llista-resultats']//h3/a/text()").extract()
item['url'] = site.xpath("//div[@id='llista-resultats']//h3/a/@href").extract()
item['when'] = site.xpath("//div[@id='llista-resultats']//div[@class='dades']/dl/dd/text()").extract()
items.append(item)
return items

我认为错误是因为我在每个项目上使用 //,但我没有获得 sites = sel.xpath("//div[@id='llista-resultats']").

最佳答案

你应该使用 relative xpath selectors对于嵌套属性

此外,您没有以正确的方式为网站指定选择器。

sites = sel.xpath("//div[@id='llista-resultats']/div")
items = []
for site in sites:
item = BcnItem()
item['title'] = site.xpath("h3/a/text()").extract()
item['url'] = site.xpath("h3/a/@href").extract()
item['when'] = site.xpath("div[@class='dades']/dl/dd/text()").extract()
items.append(item)
return items

关于python - 我无法抓取网站的 div 参数(scrapy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20908790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com