爬虫准备工作
-
参考资料
-
python 网络数据采集 ’ 图灵工业出版
-
精通 python 爬虫框架 Scrapy ’ 人民邮电出版社
-
python3 网络爬虫
-
Scrapy官方教程
-
前提知识
-
url
-
http 协议
-
web 前端 ’ html, css, js
-
ajax
-
re, xpath
-
xml
爬虫简介
-
爬虫定义:网络爬虫(又被称为网页蜘蛛、网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫
-
两大特征
-
能按作者要求下载数据或者内容
-
能自动在网络上流窜
-
三大步骤
-
下载网页
-
提取正确的信息
-
根据一定规则自动跳到另外的网页上执行上两步内容
-
爬虫分类
-
通用爬虫
-
专用爬虫(聚焦爬虫)
-
Python 网络包简介
-
python2.x:urllib,urllib2,urllib3,httplib,httplib2,requests
-
python3.x:urllib,urllib3,httplib2,requests
-
python2:urllib 和 urllib2 配合使用,或者 requests
-
python3:urllib,requests
urllib
-
包含模块
-
urllib.request: 打开和读取 urls
-
urllib.error: 包含 urllib.request 产生的常见的错误,使用 try 捕捉
-
urllib.parse: 包含解析 url 的方法
-
urllib.robotparse: 解析 robots.txt 文件
-
案例 v01
'''
案例v01
使用urllib.request请求一个网页内容,并把内容打印出来
'''
from urllib import request
if __name__ == '__main__':
url = "https://www.zhaopin.com/taiyuan/"
# 打开相应url并把相应页面作为返回
rsp = request.urlopen(url)
# 把返回的结果读取出来
# 读取出来内容类型为bytes
html = rsp.read()
print(type(html))
# 如果想把bytes内容转换成字符串,需要解码
print(html.decode())
-
网页编码问题解决
-
chardet 可以自动检测页面文件的编码格式,但是,可能有误
-
需要安装,conda install chardet
-
案例 v02
'''
案例v02
利用request下载页面
自动检测页面编码
'''
import urllib
import chardet
if __name__ == '__main__':
url = "http://stock.eastmoney.com/news/1407,20170807763593890.html"
rsp = urll