Python学习之爬虫06-CSDN博客文章爬取

12 篇文章 0 订阅
9 篇文章 0 订阅

Python学习之爬虫06-CSDN博客文章爬取

概述:

练习总结。(一边爬着CSDN,一边写着CSDN的博客会不会被打…)

import urllib.request
import re
url="https://blog.csdn.net/"
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36")
opener=urllib.request.build_opener()
opener.addheaders=[headers]            # 添加报头,伪装成浏览器访问
# 将报头安装为全局属性,这样的话,使用urllib.urlopen也能携带伪装的报头
urllib.request.install_opener(opener)
# 开始访问主页
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
paturl='''data-track-click='{"mod":"popu_459","con":",([\s\S]* or [\w\W]* or [\d\D]*?)#commentBox'''
all_link=re.compile(paturl).findall(data)
print(all_link)

csdn博客首页链接获取

注:这时一个奇迹,我第一次这样匹配可以爬下来,但是之后就不行了,需要转换正则…这也是反爬中的一种吗?表示很晕…
查看网页源码可知:正则没错,但是通过爬虫爬取的HTML数据和网页源码不同…这就很醉了。
算了后续再来研究…

import urllib.request
import re
url="https://blog.csdn.net/"
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36")
opener=urllib.request.build_opener()
opener.addheaders=[headers]            # 添加报头,伪装成浏览器访问
# 将报头安装为全局属性,这样的话,使用urllib.urlopen也能携带伪装的报头
urllib.request.install_opener(opener)
# 开始访问主页
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
pattitle='target="_blank">(.*?)</a></h3>'
paturl2='<h3 class="company_name"><a href="(.*?)"'
all_title=re.compile(pattitle).findall(data)
all_link2=re.compile(paturl2).findall(data)
# print(data)
# print(len(all_link2))  # 16 第一个连接不能要 因为匹配出来的链接不是博文,而是CSDN宣传链接
# print(len(all_title))  # 前3个连接不能要,匹配出的内容不符合
for i in range(1,len(all_link2)):
    thislink=all_link2[i]
    this_title=all_title[i+2]
    localpath="G:\\Python_Test\\urllib_test\\"+str(this_title)+".html"
    urllib.request.urlretrieve(thislink,filename=localpath)
    print("当前文章(第"+str(i)+"篇)爬取成功!")

csdn博客内容获取

感觉中间有一篇没有成功…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值