Python 实现网络爬虫_基本要求 自己选择一个网站,用python语言编写一个爬虫程序,将其网站中的文字、图

51 阅读4分钟

上述代码使用`urllib.request`库发送GET请求,并使用`urlopen()`方法打开指定的URL。`read()`方法用于读取响应内容,返回的数据是字节流,可以通过`decode()`方法将其转换为字符串。最后,我们打印出网页数据。


另外,`requests`库也是常用的发送HTTP请求的库,使用方法如下:



import requests

发送GET请求并获取网页数据

url = "www.example.com" response = requests.get(url) data = response.text

打印网页数据

print(data)


`requests.get()`方法发送GET请求,并返回一个`Response`对象。通过`text`属性可以获取响应内容的字符串形式。最后,我们打印出网页数据。


无论使用`urllib`还是`requests`库,都可以方便地发送HTTP请求,并获取网页数据。选择使用哪个库取决于个人偏好和项目需求。


### 2. 解析 HTML 页面,提取所需信息


Python 提供了 BeautifulSoup、lxml 等第三方库用于解析 HTML 页面,并提供了 XPath、CSS Selector 等选择器用于定位页面上的元素,从而提取所需信息。


代码示例:



from bs4 import BeautifulSoup import requests

发送GET请求并获取网页数据

url = "www.example.com" response = requests.get(url) data = response.text

使用BeautifulSoup解析HTML页面

soup = BeautifulSoup(data, 'lxml')

使用CSS Selector定位元素,并提取所需信息

title = soup.select_one('h1').text paragraphs = soup.select('p')

打印提取的信息

print("标题:", title) print("段落:") for p in paragraphs: print(p.text)


上述代码使用`requests`库发送GET请求,获取网页数据。然后,使用`BeautifulSoup`库解析HTML页面,其中的`lxml`参数指定使用lxml解析器。接下来,可以使用CSS Selector定位页面上的元素,`select_one()`方法用于定位单个元素,`select()`方法用于定位多个元素。通过`text`属性可以获取元素的文本内容。


在示例中,我们使用CSS Selector定位了标题和段落标签(`<h1>``<p>`),并提取了它们的文本内容。最后,我们打印出提取的信息。


除了CSS Selector,还可以使用XPath来定位元素。代码示例如下:



from lxml import etree import requests

发送GET请求并获取网页数据

url = "www.example.com" response = requests.get(url) data = response.text

使用etree解析HTML页面

tree = etree.HTML(data)

使用XPath定位元素,并提取所需信息

title = tree.xpath('//h1/text()') paragraphs = tree.xpath('//p/text()')

打印提取的信息

print("标题:", title[0]) print("段落:") for p in paragraphs: print(p)


上述代码使用`requests`库发送GET请求,获取网页数据。然后,使用`etree`模块解析HTML页面。通过`xpath()`方法可以使用XPath来定位元素,`text()`函数用于获取元素的文本内容。


在示例中,我们使用XPath定位了标题和段落标签(`<h1>``<p>`),并提取了它们的文本内容。最后,我们打印出提取的信息。


无论是使用BeautifulSoup还是lxml库,都可以方便地解析HTML页面,并提取所需信息。选择使用哪个库取决于个人偏好和项目需求。


### 3. 存储或处理提取的信息


Python 提供了各种文件读写、数据库连接、数据处理等库,可以方便地将提取的信息存储或进行进一步处理。


下面是一些常用的库和技术,用于存储或处理提取的信息:


1.1 文件存储:可以使用内置的`open()`函数来创建、读取和写入文件,将提取的信息保存为文本文件。也可以使用`csv`模块来处理CSV格式的文件,`json`模块来处理JSON格式的文件。


1.2 数据库存储:可以使用Python的数据库接口库(如`sqlite3``psycopg2``pymysql`等)连接到数据库,并将提取的信息存储在表中。


1.3 数据处理和分析:可以使用`pandas`库来加载提取的信息,并进行数据处理、分析和转换。`pandas`提供了丰富的函数和方法,可以对数据进行过滤、排序、聚合等操作。


1.4 可视化:可以使用`matplotlib``seaborn`等库来可视化提取的信息,生成图表、图形和报表,以便更好地理解和展示数据。


下面是一个示例,将提取的信息保存到CSV文件中:



import csv

假设已经从HTML页面提取了标题和段落信息

title = "Example Title" paragraphs = ["Paragraph 1", "Paragraph 2"]

将信息存储到CSV文件中

with open('output.csv', 'w', newline='') as file:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

了解详情:docs.qq.com/doc/DSnl3ZG…