爬虫相信大家都有所了解,我对爬虫就不做详细介绍了。本次我决定使用scrapy爬取优快云论坛发布的问题以及回答的内容。
首先,我们需要创建一个scrapy项目。
scrapy startproject test1
然后进入scrapy项目中,创建一个爬虫。
#进入scrapy项目中
cd test1
#创建爬虫
scrapy genspider csdn_spider bbs.youkuaiyun.com
创建爬虫时,前两个参数是固定的,第三个参数是你要创建的爬虫文件的名字,第四个参数是你要爬取的网站的网址,此处我们先随便写上一个。四个参数缺一不可。
接下来我们打开我们的项目,找到spider文件夹中我们刚创建的 'csdn_spider.py'文件。下面我们就要开始我们的爬虫项目了。
先对优快云论坛进行分析,我们发现论坛的分页是比较简单的,每一页的网址只有特定地方的数字变了一下。所以我们可以创建一个函数对论坛每一页的url进行拼接。
#拼接url
def joint_url(url):
# for i in range(1,101):
#此处范围可以先改小点进行测试,测试成功后可以再进行增大范围的操作。
return [url.format(i) for i in range(1,10)]
下面分析每一个问题的url。我们会发现每个问题的url是这样的。
<a href="/topics/392451197" class="topic_title" target="_blank" title="关于读取EXCEL出现乱码的问题">关于读取EXCEL出现乱码的问题</a>
这个超链接是不完整的,所以我们需要再写一个函数拼接问题的url。
#拼接各个问题的url
def question_url(url):
#筛选出符合条件的url(只有满足条件的才是问题的url)
if '/topics' in url:
return "https://bbs.youkuaiyun.com"+url
else:
return None
网址都得到了,那么下面就可以爬取网页,并分