Python有关爬虫的一些总结

Python网络爬虫基础 基础知识讲解部分(网络爬虫入门) 网络爬虫就是自动地从互联网上获取程序。想必你听说过这个词汇,但是又不太了解,大家会觉得掌握网络爬虫还是要花一些功夫的,因此这个门槛让你有点望而却步。我常常觉得计算机和互联网的发明给人类带来了如此大的便利,让人们不用阅读说明书就知道如何上手,但是偏偏编程的道路却又是如此艰辛。因此,我会尽可能做到浅显易懂,希望读者能够读懂我说了什么,从而能够享受到其中的快乐。 基本介... 阅读详情

1.爬虫:
网络爬虫(又被称为网页蜘蛛,网络机器人,在 FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取 万维网信息的程序或者 脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者 蠕虫。

2.简单爬虫的制作流程:

       在Python中实现爬虫程序还是很容易的,先上代码:
import urllib2,urllib
import re


url = "http://www.hao123.com/"
reg=r'src="(.+?.jpg)"'          #匹配jpg格式的图片
partten=re.compile(reg)        #制定匹配pattern
page=urllib2.urlopen(url).read()  #read到page中
png=re.findall(parttern,page)     
i=1
for x in png:
urllib.urlretrieve(x,'%s.jpg'%i)   #下载到本地并命名保存
i += 1
if i==5:                                          #一次不要下太多
break

可见,一般流程就是先用urlopen().read()方法获得制定URL页面的所有内容,接下来我们就要对下载到的内容进行筛选了-----正则表达式是这一步的关键。
首先,你的知道你的爬虫想要爬什么东西,然后审查该元素的HTML标记(这里推荐用火狐的firebug插件,非常方便),最后制定准确的正则表达式来匹配你想要的内容。
关于正则表达式的内容,请看其他文档,w3cschool上面的用来入门很好。

3.通用的网络爬虫框架





这种爬虫框架是用来有计划爬取很多网页的,一般搜索引擎会用到这些,来定期的抓取未知的网页和更新了的网页。

4.抓取策略

1、宽度(广度)优先,兼顾深度的遍历策略;
 
① 采用广度优先的原因:
  • 重要的网页往往离种子站点距离较近;万维网的深度没有我们想象的那么深,但却出乎意料地宽(中文万维网直径长度只有17,即任意两个网页之间点击17次后便可以访问到);
  • 宽度优先有利于多爬虫合作抓取;
② 广度优先的存在不利结果:
  • 容易导致爬虫陷入死循环,不该抓取的反复抓取;
  • 应该抓取的没有机会抓取;
③ 解决以上两个缺点的方法是深度抓取策略(Depth-First Trsversal)和不重复抓取策略
 
④ 为了防止爬虫无限制地宽度优先抓取,必须在某个深度上进行限制,达到这个深度后停止抓取,这个深度就是万维网的直径长度。当最大深度上停止抓取时,那些深度过大的未抓取网页,总是期望可以从其他种子站点更加经济地到达。限制抓取深度会破坏死循环的条件,即使出现循环也会在有限次后停止。
 
⑤评价:
   宽度(广度)优先,兼顾深度的遍历策略,可以有效保证抓取过程中的封闭性,即在抓取过程(遍历路径)中总是抓取相同域名下的网页,而很少出现其他域名下的网页。
 
2、不重复抓取策略
 
    保证一个变化不大的网页只抓取一次即可,防止重复抓取占用大量CPU和带宽资源,从而集中有限的资源区抓取更重要、质量更高的网页。
 
3、大站优先策略(Larser Site First)
 
     通常大型网站都是优质的内容,网页质量一般较高,以网站为单位来衡量网页重要性,是有一定依据的。对于待抓取URL队列中的网页,根据等待下载的页面多少来判断下载优先级。
 
4、非完全PageRank策略(Partial PageRank)
 
   对于已经下载的网页(不完整的互联网页面的子集)内,加上待抓取的URL队列中的URL一起,形成网页集合,在此集合内部进行PageRank计算;计算完成以后,将待抓取URL队列里的网页按照PageRank得分由高到低排序,形成序列就是爬虫接下来应该依次抓取的URL列表。
 
   由于PageRank是一个全局算法,就是当所有网页都被下载完成以后,其计算结果才是可靠的,但是爬虫在抓取过程中只能接触到一部分网页,所以在抓取阶段的网页时无法进行可靠的PageRank计算的,所以叫做非完全PageRank策略。
 
5、OCIP策略(Online Page Importance Computation)
 
   OCIP字面含义为“在线页面重要性计算”,算是一种改进的PageRank算法。算法开始前,每个互联网页面被赋予相同的数值,每当下载了某个页面P后,P将自己拥有的数值平均分配给页面中包含的链接,同时清空自己的数值。对于待抓取URL队列中的网页,根据其手头数值大小排序,优先下载数值较大的网页。
 
6、合作抓取策略(抓取提速策略)
 
  增加爬虫数量可以提高总体抓取速度,但需要将工作量分解给不同的网页爬虫,以保证分工明确,防止出现多个爬虫抓取相同的页面,浪费资源。
 
 ① 通过web主机的IP地址来分解,让某个爬虫仅抓取某个地址段的网页
 
    对于中小型网站,出于经济的考虑,通常会在一台服务器中提供不同的web服务,这样就出现多个域名对应一个IP段的情况;但新浪、搜狐等大型网站通常采用负载均衡的IP组技术,同样的域名对应多个IP地址。所以这种方式并不方便
 
 ② 通过网页域名来分解,使某个爬虫仅抓取某个域名段的网页
      
    将不同域名分配给不同爬虫抓取,某一个爬虫只抓取固定域名集合下的网页;这样保证不重复抓取大型网站的网页,中小型网站即便重复抓取也可以接受的策略分配任务。所以,为了抓取大网站,按照域名分解的策略更加合理。
 



5.一些小知识点

①有的网站会反感爬虫程序
解决办法:设置header 伪装成浏览器访问

某些网站反感爬虫的到访,于是对爬虫一律拒绝请求
这时候我们需要伪装成浏览器,这可以通过修改http包中的header来实现

[python]  view plain copy
  1. #…  
  2.   
  3. headers = {  
  4.     'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'  
  5. }  
  6. req = urllib2.Request(  
  7.     url = 'http://secure.verycd.com/signin/*/http://www.verycd.com/',  
  8.     data = postdata,  
  9.     headers = headers  
  10. )  
  11. #...  

 ②对付反盗链

某些站点有所谓的反盗链设置,其实说穿了很简单,

就是检查你发送请求的header里面,referer站点是不是他自己,

所以我们只需要像把headers的referer改成该网站即可,以baidu为例:

#...
headers = {
    'Referer':'http://www.baidu.com'
}
#...

headers是一个dict数据结构,你可以放入任何想要的header,来做一些伪装。

例如,有些网站喜欢读取header中的X-Forwarded-For来看看人家的真实IP,可以直接把X-Forwarde-For改了。


③有时候的注意编码与解码

Python 网络爬虫高阶用法 通过学习本文的内容,读者应掌握 Python 网络爬虫的高级用法,并能够应对反爬虫机制、抓取动态网页、实现分布式和异步爬虫。网络爬虫技术在数据抓取、信息采集等方面有着广泛的应用,掌握这些技能将大大提升数据处理和分析的效率。 阅读详情

相关推荐

Python 网络爬虫进阶教学全指南

本次博客将深入探究 Python 网络爬虫的核心知识与实用技巧,引领大家从入门迈向精通

安年的小小博客有大大的梦想 4030

Python爬虫系列总结

随着WEB2.0时代的到来,网络已经成为了人们获取信息的重要途径,而爬虫技术可以让我们从海量的网络数据中快速地获取我们想要的信息。Python是一种简单易学、功能强大的编程语言,特别适用于爬虫开发。本篇教程将分享Python爬虫进阶方面的知识,帮助大家更好地掌握Python爬虫技术。Python爬虫技术已经越来越成熟,使用Python爬虫可以轻松地获取需要的网络数据。本篇教程我们分享了Python爬虫进阶方面的一些知识点,希望能够帮助大家更好地掌握Python爬虫技术。

qformat的博客 1655

Python-网络爬虫

网络爬虫(Web Spider)又称网络蜘蛛或网络机器人,是一段用来实现自动采集网站数据的程序。网络爬虫不仅能够为搜索引擎采集网络信息,而且还可以作为定向信息采集器,定向采集某些网站中的特定信息。对于定向信息的爬取,网络爬虫主要采取数据抓取、数据解析、数据入库的操作流程。(1)数据抓取:发送构造的HTTP请求,获得包含所需数据的HTTP响应;(2)数据解析:对HTTP响应的原始数据进行分析、清洗,以提取出所需要的数据;(3)数据入库:将数据进一步保存到数据库(或文本文件)中,用于构建知识库。

qq_42759120的博客 1756

python 爬虫总结

requests模块 import reqeusts # get 请求 # 网址 url_login = "url://123.com" # 请求头 headers = { 'User-Agent': 'Apipost client Runtime/+https://www.apipost.cn/' } # 参数,形式字典 kw = {key:value} response = reqeusts.get(url=url_login,params=kw) # post 请求 espo

栋院 2106

Python 网络爬虫入门与实战

网络爬虫(Web Crawler)是自动访问网络并提取信息的程序。它可以模拟人类用户在浏览器中的行为,访问网页、抓取数据并存储到本地或数据库中。网络爬虫在信息检索、数据挖掘、搜索引擎等领域有广泛应用。Scrapy 是一个强大的爬虫框架,支持异步处理和数据存储。它适合大型爬虫项目,可以高效抓取和解析数据。yield item通过本文的学习,您应该对 Python 网络爬虫有了全面的了解。从基础的 Requests 库到高级的 Scrapy 框架,再到实战案例,涵盖了网络爬虫的方方面面。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 2213

python的爬虫技术归纳总结

+python爬虫知识点总结 个人学习的历程和知识点的总结。其中包括内容比较丰富

Python爬虫基础总结

Python爬虫基础总结

醉蕤的博客 1997

S4HANA - Cost Elements成本要素

SAP这里面的配置逻辑很像,就是先建一个对象,然后不停给这个对象附加一些属性,给一个账户附加编号范围,附加账户组。所有模块的维度都在这个表里,看下图的GL,CO,COPA,AA,ML的都在ACDOCA里。要把这5个类型和六大要素对应,先得把六大要素和账户类型对应下(以下是个人理解,不知道对错):当然那个C是新来的,我觉得放在资产下面也行,就不画图了。S4的嵌入式分析是在业务逻辑都整套嵌入的情况下,预开发了数据模型,所以它能提供的就不仅是原始数据了,它能提供的是包含所有相关联的上下文的信息数据。

weixin_45689053的博客 2394

Python爬虫最全面知识点总结,工作三年的在职程序员带你解读。

Python语言十分简洁,使用起来又非常简单、易学,通过Python 进行编写就像使用英语进行写作一样。另外Python 在使用中十分方便,并不需要IDE,而仅仅通过sublime text 就能够对大部分的中小应用进行开发;除此之外Python 爬虫的框架功能十分强大,它的框架能够对网络数据进行爬取,还能对结构性的数据进行提取,经常用在数据的挖掘、历史数据的存储和信息的处理等程序内......

python03011的博客 1234

5G物理层基础知识

1、关于RB和RE (1) RB(Resource Block,资源块)频率上连续12个子载波,时域上一个slot(时隙,14个ofdm符号) (2) RE(Resource Element,资源单元)频率上一个子载波,及时域上一个ofdm符号 注意:协议规定,5G每个时隙(非扩展CP)的符号数为14个(扩展CP情况下每个时隙有12个符号),而LTE(非扩展CP)每个时隙的符号数为7个。 简单说:一个12X14的方格,大的整个叫一个RB,每一个小块叫一个RE。另外,一个RE可存放一个调制符号(mo.

qq_39074243的博客 2万+

基于springboot生鲜食品订购系统的设计与实现

近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。微信小程序的O2O生鲜食品订购相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。短时间内迅速扩大了线上管理系统的规模。尽管O2O生鲜食品订购已经有了很大程度的发展,但在微信小程序的O2O生鲜食品订购领域上却少有建设。

1024

python 爬虫例子及总结(详细理解注释)

文章目录备注详细注释代码无解析代码以年份-评论人数作为图片命名 备注 集成环境:anaconda(Spyder) anaconda(Spyder)下载后还需要pycharm吗?(python集成环境选择) 详细注释代码 # -*- coding: utf-8 -*- """ Created on Wed Nov 17 10:31:22 2021 @author: 瑛 """ # 使用import导入requests模块,在爬取新的网页内容前,我们需要导入requests模块,请求并查看状态码。 impor

weixin_45627194的博客 2625

半导体功率器件IGBT工艺全流程

本文概述了功率器件IGBT(绝缘栅双极型晶体管)的关键制造流程。主要工艺包括:基板制备、离子注入(B+/P+/P+FS层)、绝缘膜形成与加工(CVD沉积及刻蚀)、沟槽刻蚀、电极形成(Emitter和Collector)等步骤。通过离子注入、化学气相沉积和物理气相沉积等半导体工艺,依次完成器件各功能层的构建,最终形成具备高功率特性的IGBT器件。该流程体现了功率半导体制造中典型的掺杂、薄膜沉积和图形化工艺技术。

750

浅谈 Python 网络爬虫的那些事

在大数据、人工智能应用越来越普遍的今天,Python 可以说是当下世界上热门、应用广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。随着大数据时代的来临,数据的收集与统计占据了重要地位,而数据的收集工作在很大程度上需要通过网络爬虫来爬取,所以网络爬虫技术变得十分重要。

黛琳ghz的博客,期待你的关注。 6823

PostGIS 小白入门详细指南

PostGIS 是 PostgreSQL 的一个扩展,它将 PostgreSQL 转变为一个功能强大的空间数据库,使其能够存储、查询和分析地理空间数据。PostGIS 遵循开放地理空间联盟(OGC)的标准,支持各种空间数据类型和操作,如点、线、多边形、缓冲区、空间连接等。存储各种空间数据类型(如几何类型和地理类型)空间索引,提高查询性能丰富的空间函数和操作支持投影和坐标系统转换城市规划与管理环境监测与分析物流与运输优化地图制作与可视化位置服务与导航。

落魄书生的职业学习生涯 1万+

S32K3实战:手把手教你用eMIOS模块实现电机PWM控制(附代码)

本文详细解析了NXP S32K3系列MCU的eMIOS模块在电机PWM控制中的应用,从硬件设计到软件实现,再到调试与优化,提供了完整的实战指南。通过eMIOS模块的硬件级PWM生成能力,工程师可以实现高精度的电机控制,适用于汽车电子和工业控制领域。

weixin_42570484的博客 146

Python爬虫-认识网络爬虫

熟悉网络爬虫的概念及分类,能够归纳通用网络爬虫和聚焦网络爬虫的区别。

csy20230322065的博客 1843

IsaacLab从入门到精通(二) 导入自定义机器人

IsaacLab系列第二讲,导入自定义的机器人及设置

DejaWu33的博客 8465

网络爬虫是什么?怎么学python爬虫

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

Itmastergo的博客 3万+

9.16华为OD机试真题 新系统 - 统计特殊数字 (Java/Py/C/C++/Js/Go)

9.16华为OD机试真题 新系统 - 统计特殊数字 (Java/Py/C/C++/Js/Go)

算法大师! 753

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

快速带你学会Python网络爬虫

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。如上图所示,爬虫的第一个步骤就是对所要爬取的网页进行请求,以获取其相应返回的结果,然后在使用一些方法,对响应内容解析,提取想要的内容资源,最后,将提取出来的资源保存起来。目前爬虫这块用的最多的是python,因为python语法简洁,方便修改,而且python里有多爬虫相关的库,拿过来就可以使用,网上的资料也比较多。

weixin_67991858的博客 700

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Python——网络爬虫

此篇文章继续跟着小甲鱼的视频来初学网络爬虫,除了小甲鱼的网站上可下载视频,发现b站上也有全套的视频哦,会比下载来的更方便些。

xxue345678的博客 927

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Python网络爬虫

网络爬虫(Web Crawler)是一种按照一定规则自动访问互联网的程序,主要用来抓取网页信息。简单来说,它像一只蜘蛛,在互联网的“网页”中爬行,收集数据并存储。网络爬虫的应用范围非常广泛,包括搜索引擎索引、价格监控、市场研究、社交媒体数据分析等。Python网络爬虫是一种非常强大且灵活的工具,通过合理的使用,可以帮助我们获取大量有价值的数据。它在数据分析、市场研究等领域发挥着不可或缺的作用。无论是数据科学家、研究人员还是普通开发者,都可以利用Python网络爬虫,探索丰富的网络数据世界。

W楠的博客 3469

【愚公系列】《Python网络爬虫从入门到精通》001-初识网络爬虫

随着互联网的快速发展,数据的获取与处理变得愈发重要。在这个信息爆炸的时代,如何有效地收集和利用网络上的海量数据,成为了各行业面临的一大挑战。网络爬虫,作为一种自动化获取网页信息的技术,正逐渐成为数据分析、市场研究、竞争对手监控等领域不可或缺的工具。本文将带领读者初步了解网络爬虫的基本概念、工作原理以及常见应用场景。我们将探讨爬虫的构建过程,包括如何发送请求、解析网页、存储数据等关键步骤。同时,还会涉及一些爬虫开发中的注意事项,如如何遵循网站的robots.txt协议、避免被封禁等。

愚公智库 12万+

Python 网络爬虫

自动发送 HTTP 请求访问网页;下载网页资源(HTML、图片、文件等);解析并提取所需信息;实现数据存储与后续处理。网络爬虫在数据采集、搜索引擎、舆情监控等方面有着广泛的应用。

专注于C/C++、Python、嵌入式、Linux与算法研究的技术分享者,记录成长,分享干货,积累价值。 3238

Python 网络爬虫教程

网络爬虫是一种自动化程序,它模拟人类用户访问网页,自动获取网页上的内容。这些数据可以是文本、图片、视频等。爬虫的核心任务是发送 HTTP 请求,获取网页响应并解析内容。

JH_joker的博客 2362
上一篇: HTTP和wsgi基本介绍
zeroist
博客等级 码龄12年 0粉丝 3原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值