我是新来的Scrapy,但我遇到了一个问题,形成一个准确的选择器的基础上scrapy的教程代码基本上我试图列出所有的企业,他们的地址和他们的网站.但当我试图列出他们只有一个结果出来(如果我把他们都设置为getall然后我得到他们所有的只是他们被随机扔在那里,我需要他们的格式:
(一个月一个月)
下面是我使用的代码:
class RynekMainSpider(scrapy.Spider):
name = "RynekMain"
start_urls = [
'https://rynekpierwotny.pl/deweloperzy/?page=1',
]
def parse(self, response):
for quote in response.css('ul.rp-1qtpzi4'):
yield {
'address': quote.css('address.rp-o9b83y::text').get(),
'name': quote.css('h2.rp-69f2r4::text').get(),
'link': quote.css('li.rp-np9kb1 a::attr(href)').get(),
}
```
Thanks in advance.
2条答案
按热度按时间chhkpiq41#
您只得到一个输出,因为元素选择/定位器策略
ul.rp-1qtpzi4
不正确,这意味着它没有选择整个页面中的所有列表,而是正确的选择,如.rp-y89gny.eboilu01 ul li
选择所有24个项目输出:
7kjnsjlb2#
response.css('ul.rp-1qtpzi4')
将获得项的容器,而不是项(li标记)本身。因此,您将在容器上循环(一次),只获得第一项。将其更改为: