我试图根据CSS属性在网页上拉出特定的URL。我可以拉第一个,但我很难获取完整的URL或获取多个URL。Scrapy从基于CSS属性的网页解析html字符串
我已经尝试使用joinurl或parse来解决许多问题。我一直用joinurl得到全局错误。
有没有更简单的方法呢?
我使用的Centos 6.5 &的Python 2.7.5
这下面的代码将第一次提供的网址,而不是http://www...inline
import scrapy
class PdgaSpider(scrapy.Spider):
name = "pdgavideos" # Name of the Spider, required value
start_urls = ["http://www.pdga.com/videos/"]
# Entry point for the spiders
def parse(self, response):
SET_SELECTOR = 'tbody'
for brickset in response.css(SET_SELECTOR):
HTML_SELECTOR = 'td.views-field.views-field-title a ::attr(href)'
yield {
'http://www.pdga.com': brickset.css(HTML_SELECTOR).extract()[0]
}
电流输出
http://www.pdga.com
/视频/ 2017玻璃吹开-FPO-RD-2-PT-2-皮尔斯fajkus-莱瑟曼-C-的Allen-司事-莱瑟曼
期望输出
网址的完整列表,没有任何休息
我没有足够的信誉分发布了几个例子
谢谢两位Tiny.D和进程vold您的快速反应!这正是我期望实现的目标。 vold:我能够输出没有单词链接或结果之前显示的其他任何内容的数据吗? – Thomas
不客气。 As @ Tiny.D已经指出:Scrapy必须返回新的Request或Item或字典。如果你想在控制台中简单地输出带有url的字符串,你最好使用带'bs4'或'lxml'分析器的'requests'。 – vold
@Thomas我编辑了我的答案,以提供更多期望的输出。 – vold