Python 爬虫实战: 爬取并下载CSDN文章
Posted qfcy_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 爬虫实战: 爬取并下载CSDN文章相关的知识,希望对你有一定的参考价值。
1.获取文章对应的标签
在文章内容上右击 -> 检查, 找到了<article>
标签, 该标签的内容就是文章的正文部分。
2.下载页面
使用requests
库的get
方法即可, 注意添加headers
, 否则会爬取不到内容。
requests
库可使用pip安装: pip install requests --timeout 40
。
from requests import get
import re,pprint
headers = {
"User-Agent": """Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 \\
(Khtml, like Gecko) Chrome/92.0.4515.131 Safari/537.36"""
}
url = input('输入文章网址: ')
req = get(url,headers=headers)
text=req.content.decode('utf-8')
3.提取标题和正文部分
需要使用正则表达式。注意: re.S表示点.
匹配全部字符, 若不用re.S
参数, 会无法提取内容。
patt=re.compile('<article.*</article>',re.S)
title=re.findall('<title>(.*?)</title>',text,re.S)[0]
content='<html><head><title>%s</title><body>'%title
content += re.findall(patt,text)[0]
4.提取CSS样式
CSS样式是修饰网页的工具, 可控制网页的排版。这里再次使用开发工具, 找到了包含CSS样式的标签。如果不用CSS, 可能会出现网页排版混乱的情况。
css_patt=re.compile('<link rel="stylesheet" href=".*?blog.*?"',re.S)
for css in re.findall(css_patt,text):
content+=css+'>'
5.保存网页
content += '</body></html>'
with open('%s.html'%title,'w',encoding='utf-8') as f:
f.write(content)
6.总结
本程序使用requests库获取网页源代码, 使用re模块提取内容、CSS样式。
注意要多使用Chrome的开发工具。
以上是关于Python 爬虫实战: 爬取并下载CSDN文章的主要内容,如果未能解决你的问题,请参考以下文章
Python爬虫实战,Scrapy实战,爬取并简单分析安居客租房信息
我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章
Python爬虫之Scrapy框架系列——项目实战某瓣Top250电影更多信息的获取
Python爬虫之Scrapy框架系列——项目实战某瓣Top250电影更多信息的获取