我想抓取一个歌词网站:http://mp3.zing.vn/bai-hat/Vi-Anh-La-Soai-Ca-Dam-Vinh-Hung/ZW78EUE8.html得到歌曲的名称,艺术家,流派和歌词。 然后我写下下面的代码并将其保存为mp3_蜘蛛网.py在
import scrapy
class MP3Spider(scrapy.Spider):
name = "mp3"
start_urls = ['http://mp3.zing.vn/bai-hat/Vi-Anh-La-Soai-Ca-Dam-Vinh-Hung/ZW78EUE8.html']
def parse(self, response):
yield
{
'song': response.css('.txt-primary h1::text').extract()[0],
'artist': response.css('.artist-track-log a::text').extract()[0],
'genre': response.css('.genre-track-log::text').extract()[0],
'lyrics': response.css('.fn-content::text').extract()[0]
}
我在命令行中运行它:
^{pr2}$但它什么也不返回。 有人能教我怎么做吗?非常感谢你的帮助。在
您的类
MP3Spider
实际上不做任何事情,因为parse
是一个独立的函数。如果您缩进parse
来匹配这样的缩进,它至少会运行。在我冒昧地重现了这个场景,撇开之前海报上的回答。。。。Python的下一个级别是如何解释的,或者不重要。此外:
我能问一下你是怎么得出你的值的吗?我想你可能不会用“碎壳”你的网站... 我想是因为插入你所拥有的,它会告诉你范围。。=[0]。。。。不存在,至少对于选定的路径。在
我擅自修改了你的密码。。但既然我不懂越南语 ,您可能需要修改一些正则表达式。在
小贴士:
^{pr2}$虽然不一定很重要,但是当你在抓取包含段落的内容时,最好使用逐项选择,这会使大文本体的分组变得更容易,而且在我的经验中不需要正则表达式。
习惯使用Scrapy shell函数并在其中进行所有路径选择。如果您使用它并养成第一件事类型视图(响应)的习惯,这将节省您很多时间。动态加载的页面或阻止Scrapy默认代理头的web页面不会像普通页面那样简单(仍然很容易,总会有办法解决这个问题)。
相关问题 更多 >
编程相关推荐