网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月07日
漏签
0
天
开课吧python吧
关注:
364
贴子:
4,064
看贴
图片
吧主推荐
游戏
1
2
下一页
尾页
28
回复贴,共
2
页
,跳到
页
确定
<<返回开课吧python吧
>0< 加载中...
【开课吧python】来自一位资深Python工程师对爬虫的总结
只看楼主
收藏
回复
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
由于某些原因最近终于可以从工作的琐事中抽出身来,有时间把之前的一些爬虫知识进行了一个简单的梳理,也从中体会到阶段性地对过往知识进行梳理是真的很有必要。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
常用第三方库
对于爬虫初学者,建议在了解爬虫原理以后,在不使用任何爬虫框架的情况下,使用这些常用的第三方库自己实现一个简单的爬虫,这样会加深对爬虫的理解。
2025-08-07 22:21:47
广告
不感兴趣
开通SVIP免广告
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
urllib和requests都是python的HTTP库,包括urllib2模块以巨大的复杂性代价获取综合性的功能。相比于urllib2,Requests模块更能简约的支持完整的简单用例。关于urllib和requests的优缺点和区别,大家可以去网上查一下。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
BeautifulSoup和lxml都是python页面解析的库。BeautifulSoup 是基于 DOM 的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多。而lxml只会进行局部遍历,使用xpath能够很快定位标签。bs4 是用 python 写的,lxml 是 c 语言实现的,也决定了lxml比bs4要快。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
爬虫框架
python常用的爬虫框架就是scrapy和pyspider两个。
关于框架的使用方法及详细介绍,可参考官方文档。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
动态页面渲染
1. url请求分析
(1)认真分析页面结构,查看js响应的动作;
(2)借助浏览器分析js点击动作所发出的请求url;
(3)将此异步请求的url作为scrapy的start_url或者yield reques再次进行抓取。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
2. selenium
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的页面,甚至页面截屏,或者判断网站上某些动作是否发生。
Selenium自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。
2025-08-07 22:15:47
广告
不感兴趣
开通SVIP免广告
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
3. phantomjs
使用selenium调用浏览器进行抓取页面时,由于要执行打开浏览器并渲染页面的操作,当进行大规模数据抓取时效率较低,无法满足需求。这时我们可以选择使用phantomjs。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器更高效。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如果我们把Selenium和PhantomJS结合在一起,就可以运行一个非常强大的网络爬虫了,这个爬虫可以处理JavaScript、Cookie、headers,以及任何我们真实用户需要做的事情。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
4. splash
Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python实现的,同时使用Twisted和QT。Twisted(QT)用来让服务具有异步处理能力,以发挥webkit的并发能力。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
python连接splash的库叫做scrapy-splash,scrapy-splash使用的是Splash HTTP API, 所以需要一个splash instance,一般采用docker运行splash,所以需要安装docker。
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
5. spynner
spynner是一个QtWebKit的客户端,它可以模拟浏览器,完成加载页面、引发事件、填写表单等操作。
2025-08-07 22:09:47
广告
不感兴趣
开通SVIP免广告
语子易
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
爬虫防屏蔽策略
1. 修改User-Agent
User-Agent是一种最常见的伪装浏览器的手段。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示