使用浏览器伪装技术爬取数据

使用python中的网络爬虫收集网站数据

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/63.0.3239.132 Safari/537.36")
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
pat='<a href="(https://blog.csdn.net/.*?)"'
mydata=re.compile(pat).findall(data)
for i in range(0,len(mydata)):
     file="E:/新建文件夹/22/sinanews/"+str(i)+".html"
     urllib.request.urlretrieve(mydata[i],filename=file)
     print("第"+str(i)+"次爬取成功")

代码详细分析

第一部分

import urllib.request
import re

上面两行代码是编写网络爬虫必要的库导入操作,urllib.request是读取网页数据的库导入。re是正则表达式,是对提取信息规则的一种约束,即可以根据自己的需求调整正则表达式来获取网页不同的信息。

第二部分

url="https://blog.csdn.net/"
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36")
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)

第一条代码是设定读取的特定对象,接下来就是将代码伪装成浏览器爬取特定网站数据,固定规则如上所示。关于user-agent的获取如下图所示:对特定网页按F12键,即可看到下方出现一些进程。选中network中的all,然后对网页做任意操作,即可在headers中出现user-agent的相关信息。
在这里插入图片描述

第三部分

data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
pat='<a href="(https://blog.csdn.net/.*?)"'
mydata=re.compile(pat).findall(data)

对网站数据进行读入,使用utf-8规则对网页进行解码,忽略其中出现的错误,防止爬虫终止。pat是正则表达式,对网页数据进行规则提取。mydata是对解码后的数据进行全部读取,此时mydata是列表格式。

第四部分

for i in range(0,len(mydata)):
     file="E:/新建文件夹/22/sinanews/"+str(i)+".html"
     urllib.request.urlretrieve(mydata[i],filename=file)
     print("第"+str(i)+"次爬取成功")

此处对数据进行循环读取,放入自己的文件夹下,用urlretrieve方法对数据进行全部读取,并使用智能提示显示程序进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值