抓取图片时遇到问题 link
Troubles with crawling an image link
我搭建了一个爬虫来爬取 www.ebay-kleinanzeigen.de 上的信息,但是除了给定的标题、价格、描述和 link,我没有得到 link提供的房子的图像。
我已经尝试使用不同的属性,如 attr(href)、attr(src)、attr(data-imgsrc)...但似乎没有任何效果。我只得到 div 容器,我什至无法拆分这个 div 容器的内容。
进口...
[...]
start_urls = [
"https://www.ebay-kleinanzeigen.de/s-haus-kaufen/anzeige:angebote/c208"
]
def parse(self, response):
items = KleinanzeigenItem()
jede_immobilie = response.css("li.ad-listitem.lazyload-item")
for immobilie in jede_immobilie:
title = immobilie.css("a.ellipsis::text").extract()
preis = immobilie.css("aditem-main, strong::text").extract()
quadratmeter = immobilie.css(".tag-small:nth-child(1)::text").extract()
description = immobilie.css(".text-module-begin+ p::text").extract()
image = immobilie.css("div.srpimagebox, img::attr(src)").extract()
link_immobilie = immobilie.css("a.ellipsis").xpath("@href").extract()
items["title"] = title
items["preis"] = preis
items["quadratmeter"] = quadratmeter
items["description"] = description
items["image"] = image
items["link_immobilie"] = "https://www.ebay-kleinanzeigen.de"+link_immobilie[0]
yield items
对于变量 "image" 我希望得到 jpg 的 link,但我得到以下结果:
{[...]
'image': ['<div class="imagebox srpimagebox" '
'data-href="/s-anzeige/einfamilienhaus-freistehend-in-zentraler-lage/1252437848-208-7416" '
'data-imgsrc="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/CBYAAOSwWI1dyD6R/$_2.JPG" '
'data-imgsrcretina="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/CBYAAOSwWI1dyD6R/$_35.JPG '
'2x" data-imgtitle="Einfamilienhaus freistehend in zentraler Lage '
'Bayern - Großostheim Vorschau">\n'
' </div>'],
[...]}
所以我不确定如何解决这个问题,因为 div-container 对我来说信息太多了。奇怪的是,我无法操纵这个 string/list。
例如我尝试获取此列表的元素[0],然后尝试使用拆分,但没有成功。
感谢您的反馈! :)
KR,马库斯
Link 图像位于您选择的 div 元素的两个属性中。即 - @data-imgsrcretina 和 @data-imgsrc。所以,你为什么不从那里挑选它。
例如,遵循 xpath 对我有用。
>> image = immobilie.css("div.srpimagebox").xpath("@data-imgsrc").extract()
>> image = immobilie.css("div.srpimagebox").xpath("@data-imgsrcretina").extract()
# take either of the above.
输出 -
>> image
[u'https://i.ebayimg.com/00/s/MTAyNFg3Njg=/z/IDUAAOSwimZdcQuw/$_2.JPG']
我搭建了一个爬虫来爬取 www.ebay-kleinanzeigen.de 上的信息,但是除了给定的标题、价格、描述和 link,我没有得到 link提供的房子的图像。
我已经尝试使用不同的属性,如 attr(href)、attr(src)、attr(data-imgsrc)...但似乎没有任何效果。我只得到 div 容器,我什至无法拆分这个 div 容器的内容。
进口...
[...]
start_urls = [
"https://www.ebay-kleinanzeigen.de/s-haus-kaufen/anzeige:angebote/c208"
]
def parse(self, response):
items = KleinanzeigenItem()
jede_immobilie = response.css("li.ad-listitem.lazyload-item")
for immobilie in jede_immobilie:
title = immobilie.css("a.ellipsis::text").extract()
preis = immobilie.css("aditem-main, strong::text").extract()
quadratmeter = immobilie.css(".tag-small:nth-child(1)::text").extract()
description = immobilie.css(".text-module-begin+ p::text").extract()
image = immobilie.css("div.srpimagebox, img::attr(src)").extract()
link_immobilie = immobilie.css("a.ellipsis").xpath("@href").extract()
items["title"] = title
items["preis"] = preis
items["quadratmeter"] = quadratmeter
items["description"] = description
items["image"] = image
items["link_immobilie"] = "https://www.ebay-kleinanzeigen.de"+link_immobilie[0]
yield items
对于变量 "image" 我希望得到 jpg 的 link,但我得到以下结果:
{[...]
'image': ['<div class="imagebox srpimagebox" '
'data-href="/s-anzeige/einfamilienhaus-freistehend-in-zentraler-lage/1252437848-208-7416" '
'data-imgsrc="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/CBYAAOSwWI1dyD6R/$_2.JPG" '
'data-imgsrcretina="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/CBYAAOSwWI1dyD6R/$_35.JPG '
'2x" data-imgtitle="Einfamilienhaus freistehend in zentraler Lage '
'Bayern - Großostheim Vorschau">\n'
' </div>'],
[...]}
所以我不确定如何解决这个问题,因为 div-container 对我来说信息太多了。奇怪的是,我无法操纵这个 string/list。
例如我尝试获取此列表的元素[0],然后尝试使用拆分,但没有成功。
感谢您的反馈! :)
KR,马库斯
Link 图像位于您选择的 div 元素的两个属性中。即 - @data-imgsrcretina 和 @data-imgsrc。所以,你为什么不从那里挑选它。
例如,遵循 xpath 对我有用。
>> image = immobilie.css("div.srpimagebox").xpath("@data-imgsrc").extract()
>> image = immobilie.css("div.srpimagebox").xpath("@data-imgsrcretina").extract()
# take either of the above.
输出 -
>> image
[u'https://i.ebayimg.com/00/s/MTAyNFg3Njg=/z/IDUAAOSwimZdcQuw/$_2.JPG']