scrapy 爬取简单网站数据示例

本文介绍如何使用Scrapy爬取豆瓣电影排名数据,解析遇到的问题,包括XPath选择器的正确使用、allowed_domains的配置以及在PyCharm中调试Scrapy项目的技巧。
摘要由CSDN通过智能技术生成

上一节介绍了scrapy的安装和创建一个scrapy项目,这一节介绍scrapy的使用,以爬取豆瓣电影排名为例,总结编写程序过程中遇到的问题和学到的东西。

首先创建好的scrapy项目结构图如下: 同之前创建好的scrapy项目有所不同的是,这里多了一个自己创建的debug_config.py文件,至于这个文件的作用,我在下面会讲到

settings.py 中配置请求头,在文件第43行,默认是注释掉的

解掉注释,然后换上user-agent就可以了

 spiders/douban_spider.py 中的代码如下

items.py 中的代码如下

现在来说说程序编写过程中遇到的问题

1. 提取数据时,刚开始xpath我是这样写的   //div[@class='pic']/em/text()   运行程序之后发现提取到的是重复的数据,再三尝试之后发现了问题。因为我们是从已经获取到的当前网页所有电影信息列表 movie_list 中提取来提取的数据,所以xpath应该这样写 . //div[@class='pic']/em/text()     注意我在// 前面加了一个点,表示是从当前节点下提取的数据

2.在获取下一页内容时,程序并没有执行,刚开始以为是url的问题,在终端中查看打印的url的时候,发现url并没有错,后来发现是  allowed_domains 的问题。之前提到 allowed_domains 是用来限制我们爬取的域名,规定爬虫只爬取这个域名下的网页,而跟allowed_domains 的值不匹配的url将被忽略。我刚开始写的是  allowed_domains = [" www.douban.com"] , 而我们请求的url是

https://movie.douban.com/top250 ,所以才会没有进行下一页请求。这里一定要注意,allowed_domains的值一定要跟https:// .*? / 

中的内容相匹配

3.经过上面两个问题之后,我发现scrapy项目想要找到bug很麻烦,因为它是通过终端命令运行的,所以pycharm控制台并不会打印错误信息, 这给我们找bug带来很大不便。于是我在网上找了很多资料,发现是可以设置scrapy项目在pycharm中调试的,具体方法如下: 

首先在settings.py 文件的同级目录下创建一个.py文件,文件名可以随意,但是要见名知意,我这里起的 debug_config.py

然后打开文件,输入以下内容:

然后在spider程序中需要的地方打上断点,在debug_config文件中右键 debug,我们就可以在控制台看到程序运行输出的信息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什固吴彦祖

有钱的捧个钱场,没钱的捧个人场

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值