【发布时间】:2021-08-04 20:26:01
【问题描述】:
我正在尝试从该 URL https://eksisozluk.com/mortingen-sitraze--1277239 抓取数据,我想抓取标题,然后抓取标题下方的所有 cmets。如果您打开网站,您会看到标题下的第一条评论是(bkz: mortingen)。问题是 (bkz 位于 div 中,而 div 内部 mortingen 位于锚链接中,因此很难抓取网站上显示的数据。任何人都可以帮助我使用可以刮掉所有 cmets 的 CSS 选择器或 Xpath,如图所示。 我的代码写在下面,但它给了我 (bkz: 一列然后 akhisar 然后 ) 三列而不是一列 p>
def parse(self, response):
data={}
#count=0
title = response.css('[itemprop="name"]::text').get()
#data["Title"] = title
count=0
data["title"] = title
count=0
for content in response.css('li .content ::text'):
text = content.get()
text=text.strip()
content = "content" +str(count)
data[content] = text
count=count+1
yield data
【问题讨论】:
-
分两步得到它 - 首先是
bkz:,然后是mortingen,然后将它连接成一个字符串。 -
我们无法运行代码,因此我们看不到它在单独的列中。为什么不使用将它放在一个列表中,然后将其全部加入一个列表中,然后将其放在一列中
-
或者也许你应该首先获取所有
.content而不使用::text,然后使用for-loop分别处理每个.content并仅在选定的.content中获取所有::text
标签: python web-scraping xpath scrapy css-selectors