欢迎访问宙启技术站
智能推送

Python函数实现爬虫获取网页信息

发布时间:2023-06-16 17:35:26

爬虫是一种用于自动获取网络数据的程序,Python是一种功能强大的编程语言,Python的库和框架如Beautiful Soup、Scrapy等也使得Python成为了编写爬虫的首选语言。

在Python中,我们可以使用函数实现爬虫来获取网页信息。本篇文章将介绍Python中如何使用函数来获取网页信息。

1.获取网页信息的基本步骤

获取网页信息的基本步骤如下:

1)发起请求:使用Python的requests库发起HTTP请求;

2)获取响应:接收并解析服务器返回的响应内容;

3)解析网页:使用Python的网页解析库,如Beautiful Soup、PyQuery等解析网页源代码;

4)提取数据:根据需要,从解析后的网页代码中提取需要的数据。

在这个过程中,需要用到一些Python库和模块,我们在下面具体介绍。

2.使用requests库发起HTTP请求

Python中的requests库是最常用的HTTP库之一,也是爬虫中最重要的一部分,我们可以使用requests库发起HTTP请求,获取所需的HTML代码。

以获取中国天气网天津市天气为例,代码如下所示:

import requests

url = 'http://www.weather.com.cn/weather/101030100.shtml'

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=header)
print(response.text)

在上面的代码中,我们首先引入了requests库,然后定义了一个url变量,存储我们要爬取的网页地址。

然后我们定义了一个header,在请求头里面添加User-Agent,模拟浏览器发送请求。注意:很多网站都会检测请求头中是否包含User-Agent字段,如果不包含,则会返回404错误。

接着我们使用requests库发出了一个get请求,并获取了服务器返回的HTML代码。

最后我们将HTML代码打印出来。

3.使用Beautiful Soup解析网页

得到了HTML代码之后,我们需要使用Python的网页解析库对HTML代码进行解析,以便提取所需的数据。其中,Beautiful Soup是Python中最著名的解析库之一。

代码如下所示:

from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, 'html.parser')
print(soup.prettify())

上面的代码中,我们首先导入了Beautiful Soup库。然后我们创建了一个BeautifulSoup对象,其中response.text是HTML代码,html.parser是指使用Python默认的HTML解析器解析HTML。

最后,我们使用prettify()函数将HTML代码进行美化输出,以方便查看。

4.提取数据

在上一步中,我们已经将HTML代码解析成了BeautifulSoup的对象,此时,我们可以使用BeautifulSoup对象提供的find()、find_all()函数来查找我们需要的数据。

在这个例子中,我们需要获取天气预报的信息。

代码如下所示:

# 获取省份、城市、日期、天气等信息
city = soup.select('.crumbs.fl > .crumb.bc-city')[0].text
date = soup.select('.t.clearfix > .time')[0].text
province = soup.select('.crumbs.fl > .crumb:last-of-type')[0].text
weather = soup.select('#7d > .li:nth-of-type(1) > p.wea')[0].text
temperature = soup.select('#7d > .li:nth-of-type(1) > p.tem')[0].text.replace('
', '')

print(province + city + date + weather + temperature)

上面的代码中,我们首先使用select函数选择天气信息所在的HTML元素。

注意:这里使用了css selector语法,'#7d > .li:nth-of-type(1) > p.wea'是指选择id为“7d”的HTML元素下的第1个class为“li”的元素下的p标签中的class为“wea”的元素。

接着我们使用text属性获取元素的文本内容,再通过replace()函数将字符串中的换行符去掉,最后将提取到的信息打印输出。

总结

使用Python实现爬虫获取网页信息是一项非常有用的技能,本篇文章介绍了Python函数实现爬虫获取网页信息的基本步骤。如果想要更深入了解爬虫相关知识内容,请大家自学Python的第三方库和框架。