Python利用正则表达式爬取网页信息及图片的完整攻略如下:
步骤一:导入模块
在Python中,我们需要导入re
和requests
模块来实现正则表达式爬取网页及图片的功能。re
模块用于处理正则表达式,requests
模块用于发送HTTP请求和获取响应。
import re
import requests
步骤二:发送HTTP请求
在Python中,我们可以使用requests
模块发送HTTP请求,并获取响应。以下是一个示例,展示了如何使用requests
模块发送HTTP请求:
url = 'https://www.example.com'
response = requests.get(url)
html = response.text
在上面的示例中,我们使用requests.get()
函数发送HTTP请求,并将响应保存到response
变量中。然后,我们使用response.text
属性获取响应的HTML内容,并将其保存到html
变量中。
步骤三:使用正则表达式匹配信息
在Python中,我们可以使用正则表达式来匹配网页中的信息。以下是一个示例,展示了如何使用正则表达式匹配网页中的标题:
pattern = r'<title>(.*?)</title>'
title = re.findall(pattern, html)[0]
在上面的示例中,我们使用正则表达式<title>(.*?)</title>
匹配网页中的标题,并使用re.findall()
函数查找所有匹配的结果。由于re.findall()
函数返回一个列表,因此我们可以使用[0]
获取第一个匹配的结果。
步骤四:使用正则表达式匹配图片
在Python中,我们也可以使用正则表达式来匹配网页中的图片。以下是一个示例,展示了如何使用正则表达式匹配网页中的图片:
pattern = r'<img.*?src="(.*?)".*?>'
images = re.findall(pattern, html)
在上面的示例中,我们使用正则表达式<img.*?src="(.*?)".*?>
匹配网页中的图片,并使用re.findall()
函数查找所有匹配的结果。由于re.findall()
函数返回一个列表,因此我们可以将所有匹配的图片URL保存到images
变量中。
示例一:爬取网页信息
假设我们要爬取百度首页的标题,可以使用以下代码:
import re
import requests
url = 'https://www.baidu.com'
response = requests.get(url)
html = response.text
pattern = r'<title>(.*?)</title>'
title = re.findall(pattern, html)[0]
print(title)
在上面的示例中,我们使用requests
模块发送HTTP请求,获取百度首页的HTML内容。然后,我们使用正则表达式<title>(.*?)</title>
匹配网页中的标题,并使用re.findall()
函数查找所有匹配的结果。最后,我们将匹配的标题打印出来。
示例二:爬取网页图片
假设我们爬取百度首页的所有图片,可以使用以下代码:
import re
import requests
url = 'https://www.baidu.com'
response = requests.get(url)
html = response.text
pattern = r'<img.*?src="(.*?)".*?>'
images = re.findall(pattern, html)
for image in images:
print(image)
在上面的示例中,我们使用requests
模块发送HTTP请求,获取百度首页的HTML内容。然后,我们使用正则表达式<img.*?src="(.*?)".*?>
匹配网页中的图片,并使用re.findall()
函数查找所有匹配的结果。最后,我们使用for
循环遍历所有匹配的图片URL,并将其打印出来。