下面是对“python3.7简单的爬虫实例详解”的完整攻略:
python3.7简单的爬虫实例详解
概述
在本文中,我们将使用Python 3.7来编写一个简单的爬虫程序,用于从网站上获取信息。该程序需要做到以下几点:
- 从指定的URL页面获取HTML源代码。
- 分析HTML源代码,提取所需的信息。
- 将所需的信息保存到本地文件中。
这个程序的实现,需要用到以下几个Python模块:
- requests模块:用于向指定URL发送HTTP请求,并获取响应内容。
- BeautifulSoup模块:用于解析HTML文档,方便地提取所需的信息。
- re模块:提供了正则表达式的支持,用于在HTML源代码中查找特定的信息。
- os模块:用于文件相关的操作。
示例说明1
我们以爬取“http://www.youdao.com”网站上的热门搜索关键词为例,来说明该程序的实现过程。
首先,我们需要使用requests模块向该网站发送HTTP请求,代码如下:
import requests
url = 'http://www.youdao.com'
response = requests.get(url)
print(response.text)
这段代码中,我们首先定义了一个URL,然后使用requests.get()函数向该URL发送了一个GET请求,并将响应内容保存在response变量中。最后,我们使用print()函数,输出了响应内容。
接下来,我们需要使用BeautifulSoup模块解析HTML文档,并提取所需的信息。代码如下:
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
hot_words = soup.select('#hotWords > ol > li > a')
for word in hot_words:
print(word.text)
这段代码中,我们首先使用BeautifulSoup()函数解析了响应内容,然后使用select()函数,根据CSS选择器选取了所有热门搜索关键词对应的HTML元素。最后,我们使用for循环遍历了这些HTML元素,并输出了每个元素的文本内容。
最后,我们需要将提取出来的热门搜索关键词保存到本地文件中。代码如下:
import os
file_name = 'hot_words.txt'
if not os.path.exists(file_name):
os.mknod(file_name)
with open(file_name, 'w', encoding='utf-8') as f:
for word in hot_words:
f.write(word.text + '\n')
这段代码中,我们首先使用os模块的exists()函数判断是否存在指定的文件,如果该文件不存在,则使用mknod()函数创建该文件。然后,我们使用open()函数打开该文件,并写入提取出来的热门搜索关键词。最后,我们使用close()函数关闭文件。
示例说明2
我们以爬取“http://www.baidu.com”网站上的所有图片为例,来说明该程序的实现过程。
首先,我们需要使用requests模块向该网站发送HTTP请求,并获取响应内容,代码如下:
import requests
url = 'http://www.baidu.com'
response = requests.get(url)
接下来,我们需要使用re模块查找HTML源代码中所有图片的链接,代码如下:
import re
img_pattern = re.compile('<img.*?src="(.*?)".*?>')
img_urls = img_pattern.findall(response.text)
这段代码中,我们使用re.compile()函数定义了一个正则表达式,用于匹配HTML源代码中所有图片的链接。然后,使用findall()函数,查找所有匹配的图片链接,并将这些链接保存到img_urls变量中。
最后,我们需要将获取到的所有图片保存到本地文件夹中。代码如下:
import os
dir_name = 'images'
if not os.path.exists(dir_name):
os.mkdir(dir_name)
for img_url in img_urls:
file_name = os.path.basename(img_url)
with open(os.path.join(dir_name, file_name), 'wb') as f:
response = requests.get(img_url)
f.write(response.content)
这段代码中,我们首先使用os模块的mkdir()函数创建了一个名为“images”的文件夹,用于保存下载的图片。然后,使用for循环遍历所有图片链接,对于每个链接,我们使用os.path.basename()函数获取其文件名,并使用open()函数创建一个文件,将图片内容保存到该文件中。
这样,我们就完成了爬取“http://www.baidu.com”网站上所有图片的任务。
以上就是关于“python3.7简单的爬虫实例详解”的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3.7简单的爬虫实例详解 - Python技术站