Python数据分析与数据挖掘 第4章 数据生成、采集.ppt

Python数据分析与数据挖掘 第4章 数据生成、采集.ppt

  1. 1、本文档共122页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
获取网页内容 避开网站对来自非浏览器访问的拒绝设置,可以仿照浏览器访问,定义一个符合要求的Request Headers,再利用requests.get()进行访问。 3.突破网站反爬限制 有些网页设置了对非浏览器访问的限制措施,如果编写程序进行访问并获取数据,会产生异常。 import requests url = header = { Accept: */*, Accept-Encoding: gzip, deflate, br, Accept-Language: zh-CN,zh;q=0.9, Connection: keep-alive, User-Agent: Mozilla/5.0 } resp = requests.get(url, headers = header, timeout = 10) print(status_code = , resp.status_code) 获取网页内容 输入/robots.txt,可以看到以下内容: 4.遵守网络爬取公约 虽然使用设置Request Headers的方法,可以绕过网站对爬虫访问的限制,但在网络世界,也有相应的道德规范,以及对网站所有者知识产权的保护条款,应当遵守。 在一些对网络资源产权比较重视的网站,会在自己的网站上规定对其进行网络爬取的限制条件。这个规定会统一存放在网站的根目录下,一个名为robots.txt文件中。 解析网站内容 bs4.BeautifulSoup(markup=, features=None, builder=None, parse_only=None, from_encoding=None, exclude_encodings=None, element_classes=None, **kwargs) 1.BeautifulSoup扩展库 解析网站内容 【例】爬取“我爱我家”房产(租房)中介网(/zufang)(完整代码见文件requests_bs4_5i5j.py)。 1.BeautifulSoup扩展库 解析网站内容 解析网页内容的过程: 1)利用requests获取网页内容; 2)调用etree.HTML()方法将网页内容解析并转化为一个lxml.etree对象,其中的树结构包含网页中的各个单元; 3)调用lxml.etree.xpath()方法,按照一定路径规则,取得特定部分的内容Element(这个Element也是一个树结构); 4)对Element迭代进行步骤3)的操作,进行更深层次的解析,直到取得所需内容。 2. lxml扩展库 lxml扩展库是一个支持对HTML和XML进行解析的解析库,支持XPath 解析方式,解析效率高。 XPath的选择功能十分强大,提供了非常简明的路径选择表达式,还提供了超过100多个函数,用于字符串、数值、时间的匹配以及单元、序列的处理等,几乎所有想要定位的单元,都可以用XPath来选择。 解析网站内容 XPath常用规则见表。 2. lxml扩展库 表达式 说明 nodename 选取此单元的所有子单元 / 从当前单元选取直接子单元 // 从当前单元选取所有子、孙单元 . 选取当前单元 .. 选取当前单元的父单元 @ 选取属性 * 通配符,选择所有元素单元与元素名 @* 选取所有属性 [@attrib] 选取具有给定属性的所有元素 [@attrib=value] 选取给定属性具有给定值的所有元素 [tag] 选取所有具有指定元素的直接子单元 [tag=text] 选取所有具有指定元素并且文本内容是text单元 text() 选取文本 contains() 包含特定属性和文本 解析网站内容 2. lxml扩展库 div ul li class=item-0 a href=link1.html链接1文字/a a href=link2.html链接2文字/a /li li class=item-1 a href=link3.html链接3文字/a /li li class=item-2 a href=link4.html链接4文字/a a href=link5.html链接5文字/a /ul /div 【例】用lxml扩展库解析网页的超文本代码。 解析网站内容 # 读取其中的ul单元 ul = html.xpath(//ul) # 输出该该单元内容 print(\n*** 读取 ul 单元,结果为:) for e in ul: print

文档评论(0)

dllkxy + 关注
实名认证
内容提供者

本文库主要涉及建筑、教育等资料,有问题可以联系解决哦

版权声明书
用户编号:5213302032000001

1亿VIP精品文档

相关文档