Python网路数据采集基本内容与工具

优采云 发布时间: 2020-08-09 09:48

  网络数据采集的基本内容相关工具介绍使用外置的恳求模块包urllib发起恳求

  urllib收录以下四个模块:

  1. urllib.request 请求和读取URL

  2. urllib.error 定义了urllib.request使用的异常

  3. urllib.parse 解析URL

  4. urllib.robotparser 解析robots.txt。该文件可以使爬虫了解网站的爬取限制和网站地图

  使用Python发起恳求,拿到HTML源码:

  from urllib.request import urlopen

html = urlopen("http://desk.zol.com.cn/")

print(html.read())

  如果恳求的是多媒体文件,可以urlretrieve将其保存到本地:

  from urllib.request import urlretrieve

urlretrieve(downloadLink,filePath)

  使用第三方库BeautifulSoup解析HTML

  Beautiful Soup 是一个太强悍的HTML/XML解析工具,使用它可以太方面的对页面元素进行搜素和更改。

  使用须要先安装它,一种方式就是直接通过pip安装:

  pip install beautifulsoup4

  下面是一个简单的列子,更多定位页面元素的方式请参考文档。

  # 使用前先导入

from bs4 import BeautifulSoup

......

# 加载页面并解析

page = urlopen(url)

pageObj = BeautifulSoup(page.read(), "html.parser")

# 获取带有指定class属性的a元素

for link in pageObj.findAll("a",{"class":"pic"}):

if 'href' in link.attrs:

......

#取到链接之后可以继续爬取

  数据清洗与自然语言工具包NLTK

  通常情况下,从页面从领到的文本内容很有可能并不是我们须要的款式,或者不是太符合预期,这样就须要先进行清洗,比如过滤掉空白符,大小写转换、提取连续词组组等等。

  《Python网路数据采集》里面讲到使用自然语言工具包NLTK,可以对一段文字进行词组数目、单词频度以及词组短语进行统计等,这里做下记录作为备用。

  使用Requests 第三方库进行复杂HTTP请求

  Requests 相比Python标准库愈加便捷,功能也更多样。通过它可以定做恳求头、获取json响应、二进制响应等等。

  1.发起POST恳求:

  import requests

payload = {'key1': 'value1', 'key2': 'value2'}

requests.post("http://httpbin.org/post", data=payload)

  2.上传文件恳求:

  files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}

requests.post(url, files=files)

  3.Cookie

  # 取cookie值

r = requests.get(url)

r.cookies['example_cookie_name']

# 指定cookie发起请求

cookies = dict(key='value')

r = requests.get(url, cookies=cookies)

  4.使用会话层面的API

  使用session对象可以太方面的进行持续发起后续恳求,不需要自动维护cookie信息

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线