首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大话Python爬虫的基本套路

什么是爬虫?

网络爬虫

也叫

网络蜘蛛

,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据,

比如:如果响应内容是html,分析dom结构,进行dom解析、或者正则匹配,如果响应内容是xml/json数据,就可以转数据对象,然后对数据进行解析。

有什么作用?

通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效数据量,给予运营/销售的数据支撑,加快产品发展。

业界的情况

目前互联网产品竞争激烈,业界大部分都会使用爬虫技术对竞品产品的数据进行挖掘、采集、大数据分析,这是必备手段,并且很多公司都设立了这里我还是要推荐下我自己的Python学习交流裙:五八八,零九零,九四二,不定期分享干货,包括我自己整理的一份2018最新的Python资料和零基础入门教程,欢迎各位小伙伴。

爬虫工程师的岗位

合法性

爬虫是利用程序进行批量爬取网页上的公开信息,也就是前端显示的数据信息。因为信息是完全公开的,所以是合法的。其实就像浏览器一样,浏览器解析响应内容并渲染为页面,而爬虫解析响应内容采集想要的数据进行存储。

反爬虫

爬虫很难完全的制止,道高一尺魔高一丈,这是一场没有硝烟的战争,码农VS码农

反爬虫一些手段:

合法检测:请求校验(useragent,referer,接口加签名,等)

小黑屋:IP/用户限制请求频率,或者直接拦截

投毒:反爬虫高境界可以不用拦截,拦截是一时的,投毒返回虚假数据,可以误导竞品决策

… …

爬虫基本套路

基本流程

目标数据

来源地址

结构分析

实现构思

操刀编码

基本手段

破解请求限制

请求头设置,如:useragant为有效客户端

控制请求频率(根据实际情景)

IP代理

签名/加密参数从html/cookie/js分析

破解登录授权

请求带上用户cookie信息

破解验证码

简单的验证码可以使用识图读验证码第三方库

解析数据

HTML Dom解析

正则匹配,通过的正则表达式来匹配想要爬取的数据,如:有些数据不是在html 标签里,而是在html的script 标签的js变量中

使用第三方库解析html dom,比较喜欢类jquery的库

数据字符串

正则匹配(根据情景使用)

转 JSON/XML 对象进行解析

python爬虫

python写爬虫的优势

python语法易学,容易上手

社区活跃,实现方案多可参考

各种功能包丰富

少量代码即可完成强大功能

涉及模块包

请求

urllib

urllib2

cookielib

多线程

threading

正则

re

json解析

json

html dom解析

pyquery

beautiful soup

操作浏览器

selenium

实例解析

斗鱼主播排行

目标数据

获取排行榜主播信息

排行榜地址]

结构分析

通过抓包[排行榜地址][主播房间地址](谷歌调试network/charles/fiddler)

获得排行数据接口:https://www.douyu.com/directory/rank_list/game

参数确认(去掉不必要参数)

cookie确认(去掉不必要cookie)

模拟请求(charles/fiddler/postman)

获得主播房间信息数据

发现$ROOM是主播房间信息,在页面的script标签的js变量中,可使用正则工具写表达式去匹配

实现构思

通过请求[主播排行接口]获取[排行榜数据]

[排行榜数据]中有主播房间号,可以通过拼接获得[主播房间地址]

请求[主播房间地址]可以获得[$ROOM信息],解析可以获得主播房间信息

操刀编码

申明:此例子仅作为爬虫学习DEMO,并无其他利用

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180110A0FM5200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券