网络爬虫
网络爬虫(web crawler),以前经常称之为网络蜘蛛(spider),是按照一定的规则自动浏览万维网并获取信息的机器人程序(或脚本),曾经被广泛的应用于互联网搜索引擎。使用过互联网和浏览器的人都知道,网页中除了供用户阅读的文字信息之外,还包含一些超链接。网络爬虫系统正是通过网页中的超链接信息不断获得网络上的其它页面。正因如此,网络数据采集的过程就像一个爬虫或者蜘蛛在网络上漫游,所以才被形象的称为网络爬虫或者网络蜘蛛。
爬虫的应用领域
在理想的状态下,所有ICP(Internet Content Provider)都应该为自己的网站提供API接口来共享它们允许其他程序获取的数据,在这种情况下爬虫就不是必需品,国内比较有名的电商平台(如淘宝、京东等)、社交平台(如腾讯微博等)等网站都提供了自己的Open API,但是这类Open API通常会对可以抓取的数据以及抓取数据的频率进行限制。对于大多数的公司而言,及时的获取行业相关数据是企业生存的重要环节之一,然而大部分企业在行业数据方面的匮乏是其与生俱来的短板,合理的利用爬虫来获取数据并从中提取出有价值的信息是至关重要的。当然爬虫还有很多重要的应用领域,以下列举了其中的一部分:
搜索引擎
新闻聚合
社交应用
舆情监控
行业数据
相关工具
robotparser —— 解析网站爬虫规则
httpie 代码版的postman
python——whois 网站的所有者
BuiltWith:识别网站使用的技术 builtwith.parse(‘http://www.bootcss.com/‘)
一个简单的爬虫
大致构造:
获取url,对网络解码,选择需要的字段,用正则表达式对数据进行处理
分为两种方法
方法一:python自带的方式:urllib
urlopen(url).read()表示获取到url地址然后.decode(参数)解码
原生方法需要用正则表达式去获取页面中想要的参数
from urllib.error import URLError
from urllib.request import urlopen
import re
import pymysql
def get_page_code(start_url, *, retry_times=3, charsets=('utf-8', )):
try:
for cha