网页内容读取与网页爬虫
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网页内容读取与网页爬虫Python程序设计
马雪娇
数学与信息工程学院
Python与网页处理Python提供了urllib等大量模块可以对网页内容进行读取和处理,在此基础上结合多线程编程以及其他有关模块可以快速开发网页爬虫之类的应用。
可以使用Python语言编写CGI程序,也可以把Python代码嵌入到网页中运行,而借助于django、Flask、Scapy或其他框架,则可以快速开发网站应用。
针对某一特定领域的数据进行抓取的程序。比如旅游网站,金融网站,招聘网站等等;特定领域的聚集爬虫会使用各种技术去处理我们需要的信息,所以对于网站中动态的一些程序,脚本仍
urllib
标准库解码中文字符获得html 内容
要点
requests库是一个简洁且简单的处理HTTP请求的第三方库。
requests库概述
requests的最大优点是程序编写过程更接近正常URL访问过程。这个库建立在Python语言的urllib3库基础上,类似这种在其他函数库之上再封装功能提供更友好函数的方式在Python语言中十分常见。
requests库中的网页请求函数
• get()是获取网页最常用的方式,在调用•requests.get()函数后,返回的网页内容会保存为一个Response对象,其中,get()函数的参数url必须链接采用HTTP或HTTPS方式访问
网页请求函数
下面的代码演示了如何读取并显示指定网页的内容。>>> import requests
>>> r = requests.get('https://')
>>> type(r)
网页请求函数
• 和浏览器的交互过程一样,requests.get()代表请求•过程,它返回的Response对象代表响应。返回内容作为一个对象更便于操作,Response对象的属性如下表所示,需要采用.形式使用。
Response对象的属性
encoding属性非常重要,它给出了返回页面内容的编码方式,可以通过对encoding属性赋值更改编码方式,以便于处理中文字符
content属性是页面内容的二进制形式
Response对象的属性
>>> import requests
>>> r = requests.get('https://') >>> r.status_code
>>> r.text
>>> r.encoding="utf-8“
>>> r.text#正常显示中文
获取一个网页内容import requests
def getHTMLText(url):
try:
r=requests.get(url)
r.raise_for_status()
r.encoding='utf-8'
return r.text,len(r.text),len(r.content) except:
return "引发异常"
url=""
txt=print(getHTMLText(url))
要点
beautifulsoup4库是一个解析和处理HTML和XML的第三方库。
beautifulsoup4库概述
使用requests库获取HTML页面并将其转换成字符串后,需要进一步解析HTML页面格式,提取有用信息,这需要处理HTML和XML的函数库。
beautifulsoup4库,也称为BeautifulSoup库或bs4库,用于解析和处理HTML和XML。
beautifulsoup4库概述
HTML建立的Web页面一般非常复杂,除了有用的
内容信息外,还包括大量用于页面格式的元素,直接解析一个Web网页需要深入了解HTML语法,而且比较复杂。beautifulsoup4库将专业的Web页面格式解析部分封装成函数,提供了若干有用且便捷的处理函数。
beautifulsoup4库概述
在使用beautifulsoup4库之前,需要进行引用,由于这个库的名字非常特殊且采用面向对象方式组织,可以用from…im port方式从库中直接引用BeautifulSoup类,方法如下。
>>>from bs4import BeautifulSoup
beautifulsoup4库解析
beautifulsoup4库中最主要的是BeautifulSoup类
•,每个实例化的对象相当于一个页面。采用from…im port导入库中类后,使用BeautifulSoup()创建一个BeautifulSoup对象。
获取一个网页内容import requests
from bs4 import _soup
def getHTMLText(url):
try:
r=requests.get(url)
r.raise_for_status()
r.encoding="utf-8"
return r.text
except:
return "引发异常"
def main():
url=""
soup=_soup(getHTMLText(url))
return soup
创建一个BeautifulSoup对象 创建的BeautifulSoup 对象是一个树形结构,它包含HTML页面里的每一个T ag(标签)元素,如
、等。具体来说,HTML中的主要结构都变成了BeautifulSoup对象的
一个属性,可以直接用.形式获得,其中的名字
采用HTML中标签的名字。