首先说明一下,题主在提问的时候尽量把问题描述清楚,这样才能针对你出现问题的地方给出准确的回答。
题主只说明了在运行时有错误,可以却并没有给出错误信息,偶也不知道该怎么回答你的,索性偶立马写一下代码,题主可以对比你自己的代码参考一下。
首先在工作目录创建一个scrapy工程:scrapy startproject doubantop250
然后进入项目目录:cd doubantop250
scrapy genspider douban “/top250”
接下来使用pycharm打开刚刚新建好的scrapy项目。
打开spiders目录下的douban.py文件,在def parse(self, response):中编写具体的代码
首先大家先分析网页结果,F12打开cchrome浏览器的开发者工具
鼠标左键单击红色区域的图标,然后把鼠标移动到大家需要提取的数据上。
大家发现,大家需要的数据都在li标签里面。每一个li便签代表一部电影
每页有25个li标签,也就是有25部电影。总共有10也,250部电影。
然后大家在网页上右键 点击 查看网页源代码,随便搜索一部电影的名称,在网页源代码中可以找到电影名称,说明大家需要提取的在网页源代码中,大家可以直接提取数据。
下面就开始写具体的代码,偶喜欢使用xpath。
先提取出了每部电影的所有信息,然后在此基础上提取电影的名称、演员列表、分类、评论数。
完整代码如下
在CMD中运行:scrapy crawl douban -o douban.csv,把数据保存到csv文件中
直接打开csv文件可能会出现乱码,可以使用notepad++把编码转换为UTF-8-BOM编码。
代码写的有些简单,仅仅满足了提取数据的要求。
希望可以帮助到题主,如果有什么问题,可以在评论区,一起讨论,一起学习。