首先分析三好学生博客内容,判断我们需要的东西:
1、标题
2、url
3、文章内容
像这种博客都有很好的前端,所有上述东西都很方便取。
比如url:
那就是在<article class post>里面
title也可以在上述a标签里面取。
文章内容也可以很方便的取:
在前端取内容,我们可以使用beautifulsoup模块,如取个title直接用以下方法即可:
soup.title.string
也可以使用xpath等方法。
这里我取个巧,直接用scrapy的selector。用以下方法取出所有的文章链接:
response.xpath("//a/@href").getall()
title这样取:
response.xpath('//title/text()').get()
那我们思路就出来了。
1、访问三好学生博客
2、解析所有文章链接
3、访问所有文章
4、取出所有文章的title、content
5、保存在本地
我们测试的时候,可以先不开启pipelines,这样我们想要的结果会直接在终端显示。下面是访问所有文章地址,然后取文章的title、content:
确认没问题,开启pipelines:
然后保存内容即可:
项目地址:
https://github.com/Jumbo-WJB/spider_3gstudent
生成的所有文章的pdf下载地址:
https://www.chinabaiker.com/all.pdf