【发布时间】:2012-12-03 01:04:00
【问题描述】:
我对使用 Scrapy 或 python 比较陌生。我希望从几个不同的链接中提取,但我在使用 HTMLXPathSelector 表达式(语法)时遇到问题。我查看了大量文档以了解正确的语法,但还没有找到解决方案。
这是我尝试从中提取“img src”的链接示例:
Page I am trying to extract the img src url from
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class GeekSpider(BaseSpider):
name = "geekS"
allowed_domains = ["geek.com"]
start_urls = ["http://www.geek.com/articles/gadgets/kindle-fire-hd-8-9-on-sale-for-50-off-today-only-20121210/"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
imgurl = hxs.select("//div[@class='article']//a/img/@src").extract()
return imgurl
我想我已经弄清楚了 x.select 语句的语法,但是由于我不熟悉这种语法/方法,所以我不确定。
这是我的 items.py 文件,基本上是按照scrapy教程进行的:
from scrapy.item import Item, Field
class GeekItem(Item):
imgsrc = Field()
澄清一下:我要做的是提取页面上的 img src url。我不需要提取我已经弄清楚的所有图像 src(容易得多)。
我只是想缩小范围,只提取 img src 的特定 url。 (我将在本网站的多个页面中使用它)
非常感谢任何帮助!
编辑 - 更新代码我在使用 geek = geek() 时遇到了一些语法错误,所以我稍微修改了一下,希望更容易理解和运行
【问题讨论】:
-
所以您只想要可点击链接的图片(即“kindle-fire-hd.jpg”)?
-
是的,完全正确。我什至不想返回图像本身,只是图像的 url 以便我可以存储它。
-
为避免混淆,请更新发布的第一个蜘蛛代码并删除第二个。 :)
-
感谢您的提示,不确定删除旧代码或保留它是否更令人困惑
标签: python xpath web-scraping scrapy