爬虫模块创建完成后,仅仅拥有了网页下载功能,接下来就需要进行网页数据的提取。
Scrapy有自己的一套数据提取机制,叫做选择器(selector),是通过特定的XPath或者CSS表达式来选择HTML文件中的某个部分。不过我之前主要使用的是BeautifulSoup包来解析网页,所以这里还继续用了BeautifulSoup,感兴趣的同学可以去找文章看看XPath的方法。
页面数据的提取还是在parse方法中完成,首先我们看一下豆瓣电影网页的html文件,https://movie.douban.com/。发现主页有正在热映电影的简要介绍,而如果想得到比较多的影片信息的介绍,则需要打开每一个具体的影片页面,获得更多的信息。这里发现主页会有URL地址,在a标签下,οnclick="moreurl(this,{from:'mv_a_tl'})"中。
首先获取页面,然后用BeautifulSoup方法解析页面。通过find_all找到页面中含有电影URL的标签,并get到“href”属性,就得到了具体一部电影的URL地址,然后加入到full_urls中。然后再从full_urls中取出地址,打开每部影片,从里面获取到标题,年份,导演,主演等详细的影片资料。
具体代码如下:
def parse(self,response):
data = response.body
soup = BeautifulSoup(data,'lxml')
f