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

使用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='

代码详细分析

第一部分

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的相关信息。
使用浏览器伪装技术爬取数据_第1张图片

第三部分

data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
pat='

对网站数据进行读入,使用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方法对数据进行全部读取,并使用智能提示显示程序进程。

你可能感兴趣的:(网络爬虫)