Python网络爬虫与信息提取01

定向掌握网络数据爬取能力和网页解析能力。

The website is API.

Requests 自动爬取HTML页面自动网络请求提交

robots.txt 网络爬虫排除标准

Beautiful Soup 解析HTML界面

Projects 实战项目

Re 正则表达式详解,提取页面关键信息

Scrapy 网络爬虫原理介绍,专业爬虫框架介绍

重视实战

常用的Python IDE工具

文本工具类IDE

集成工具类IDE

Requests是python的第三方库

pip install requests

 r=requests.get(url)构造一个向服务器请求资源的request对象

r是response对象

 

 

 

 爬取网页的通用代码框架

一组代码

网络连接有风险,异常处理很重要

 

r.raise_for_status()

如果不是200,产生异常requests.HTTPError

 

HTTP协议和requests库的方法

 HTTP Hypertext Transfer Protocol 超文本传输协议

HTTP是一个基于“请求与响应”模式的,无状态的应用层协议

用户发接请求,服务器对应的响应

 

HTTP协议采用URL作为定位网络资源的标识

 

requests.request(method,url,**kwargs)

method:请求方式,对应get/put/post等7种

url:拟获取页面的url链接

**kwargs:控制访问的参数,共13个

 

 

 小规模,数据量小,爬取速度不敏感 Requests库 爬取网页

中规模,数据规模较大爬取速度敏感 Scrapy库 爬取网站

大规模,搜索引擎 爬取速度关键定制开发  爬取全网

 

网络爬虫会有法律风险和服务器的骚扰

网络爬虫泄露隐私

 

网络爬虫的限制

来源审查:判断User-Agent进行限制

检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问

发布公告:Robots协议 告知哪些可以爬取,哪些不可以

 import requests

url="http://item.jd.com/2967929.html"

try:

  r=requests.get(url)

  r.raise_for_status()

  r.encoding=r.apparent_encoding

  print(r.text[:1000])

except:

  print("爬取失败")

 

为了防止网站不让python程序访问

kv={‘user-agent’:'Mozilla/5.0'}

url="http://www.amazon.cn/gp/product/B01M0L5Z3Y"

r=requests.get(url,headers=kv)

r.status_code

百度的关键词的接口:

http://www.baidu.com/s?wd=keyword

360的关键词的接口:

http://www.so.com/s?q=keyword

import requests

kv={'wd':'Python'}

r=requests.get("http://www.baidu.com/s",params=kv)

r.request.url

 图片的爬取和保存

图片都是二进制来存储

 

IP地址归属地的查询

import requests

url="http://m,ip138.com/ip.asp?ip="

try:

  r=requests.get(url+'202.204.80.112')

  r.raise_for_status()

  r.encoding=r.apparent_encoding

  print(r.text[-500:])

except:

  print("爬取失败")

posted on 2017-09-05 09:27  AlexGui  阅读(199)  评论(0编辑  收藏  举报

导航