请选择 进入手机版 | 继续访问电脑版
我的账户
星点互联

自媒体资讯干货

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

python爬虫第一天

2019-1-24 13:20

python爬虫第一天简介1:组成:爬虫节点,控制节点和资源库。 控制节点,也叫中央控制器,主要负责根据url地址分配线程,并调用爬虫节点进行具体的爬行。 爬虫节点会按照具

python爬虫第一天 简介          1:组成:爬虫节点,控制节点和资源库。        控制节点,也叫中央控制器,主要负责根据url地址分配线程,并调用爬虫节点进行具体的爬行。        爬虫节点会按照具体的算法,对网页进行具体的爬行,主要包括下载网页以及对网页的文本进行处理,爬行后会将结果储存到对应资源库中。   2:类型:通用网络爬虫,聚焦网络爬虫,增量式网络爬虫,深层网络爬虫。 增量式更新:指更新时只更新改变的地方,未改变就不更新。 深层网络爬虫:爬取深层网页,需要想办法自动填写对应表单,填写有两种类型:基于领域知识的表单填写(建立一个填写表单的关键词库,在需要填写时根据语义分析自动填写)和基于网页结构分析的表单填写(一般是领域知识有限使用,根据网页结构分析自动填写)。   聚焦网络爬虫:构成:初始url集合,url队列,页面爬行模块,页面分析模块,页面数据库,链接过滤模块,内容评价模块,链接评价模块等。     3:爬行策略~选取url爬行顺序:深度|广度优先、大站优先、反链策略等 OPIC策略、PartialPageRank策略 一个网页的反向链接数:该网页被其他网页指向的次数(可能代表该网页被其他网页推荐次数)   4:网页更新策略: 用户体验策略:大部分用户只会关心排名靠前的网页,所以优先更新排名靠前的网页。   历史数据策略:依据历史更新数据通过泊松过程进行建模预测下次更新时间。   聚类分析策略:按照物以类聚的思想,根据每个类的网页抽样结果的平均更新值,确定每个聚类的爬行频率。   5:网页分析算法 基于用户行为的网页分析算法:会依据用户对网页的访问行为进行评价。 基于网络拓扑的网页分析算法:依靠网页的链接关系、结构关系、已知网页或数据等对网页进行分析的一种算法。   6:身份识别         爬虫在对网页进行爬取得时候,会通过HTTP请求中的User Agent字段告知自己的身份。 爬虫访问一个网站的时候会根据该站点下的Robots.txt文件来确定可以爬取的网页范围,Robot协议是需要网络爬虫共同遵守的协议。   Urllib库:     是python提供的一个操纵URL的模块。   快速使用爬取网页.html 方式一:  思路:         首先将爬取得内容读取出来赋值给一个变量data。         再以写入的方式打开一个本地文件命名为*.html等的网页格式         之后将data中的值写入该文件中,关闭该文件。 #使用:目的爬取一个百度首页的网页写入1.html, import urllib.request file=urllib.request.urlopen("http://www.baidu.com") data=file.read() #读取全部内容 #dataline=file.readline() #读取一行内容,会把内容给一个列表变量 #print(dataline)#输出爬取内容的第一行 #print(data)#爬取内容全部 fhandle=open("D:/crawler/1.html","wb")#将该data内容写入该目录下的html fhandle.write(data) fhandle.close()     方式二:使用urlretrieve()函数爬取网页   import urllib.request filename=urllib.request.urlretrieve("http://edu.51cto.com",filename="D:/crawler/2.html") urllib.request.urlcleanup()  #用于清除缓存     其他相关方法 info=file.info()#返回环境相关信息 print(info) code=file.getcode()#获取状态码 print(code) url=file.geturl()#获取爬取的url地址 print(url) 对网页进行编码、解码 urllib.request.quote("http://www.sina.com.cn")#编码 #编码后:http%3A//www.sina.com.cn urllib.request.unquote("http%3A//www.sina.com.cn")#解码 #解码后:http://www.sina.com.cn   反爬虫设置         有时候爬取网页会出现403错误,这是对方网页进行了反爬虫设置 这时我们可以设置Header属性,模拟浏览器去访问这些网站。 import urllib.request url="http://blog.csdn.net/weiwei_pig/articledetails/51178226" file=urllib.request.urlopen(url) #执行后出现403错误 此时我们打开百度首页按 F12 这时会出现一个窗口,我们切换到NetWork标签页,然后单击百度一下让网页发生一个动作 这时点击NetWork下面出现的www.baidu.com,之后右边出现页面切换到Header,向下翻找到User-Agent字样的信息,复制下来。 得到信息: User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 接下来有两种方法:     1:使用build_opener()修改报头     使用urllib.request.build_opener()   import urllib.request url="http://blog.csdn.net/weiwei_pig/article/details/51178226" headers={"User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"} opener=urllib.request.build_opener() opener.addheaders=[headers] data=opener.open(url).read() #接下来写入文件 fhandle=open("D:/crawler/4.html","wb") fhandle.write(data) fhandle.close()             2:使用add_header()添加报头 import urllib.request url="http://blog.csdn.net/weiwei_pig/article/details/51178226" req=urllib.request.Request(url) req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36') data=urllib.request.urlopen(req).read() fhandle=open("D:/crawler/4.html","wb") fhandle.write(data) fhandle.close()        此文是我在学习《精通Python网络爬虫》(韦玮著)的总结,纯手打。                                                 

 

  import urllib.request
url="http://blog.csdn.net/weiwei_pig/article/details/51178226"
headers={"User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
opener=urllib.request.build_opener()
opener.addheaders=[headers]
data=opener.open(url).read()
#接下来写入文件
fhandle=open("D:/crawler/4.html","wb")
fhandle.write(data)
fhandle.close()

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

这个人很懒,什么也没留下...
粉丝1 阅读411 回复0
上一篇:
springboot 中打印 sql 语句发布时间:2019-01-24
下一篇:
一个基于C++11的定时器队列(timerfd,poll实现)发布时间:2019-01-24
推荐资讯
精选资讯
阅读排行
精选案例展示
关注我们
星点互联关注时代变迁

客服电话:400-234-9000

客服邮箱:vip@neoconex.com

周一至周五 9:00-18:00

公司地址:威高广场迪尚大厦海景写字楼A座1988

Powered by Discuz!X3.4@ 2017-2018 蓝盘下载 |Archiver|手机版|小黑屋|( 豫ICP备17005739号-3 )