Python网络爬虫入门:查看模块、理解概念与正则表达式
61 浏览量
更新于2024-08-30
1
收藏 217KB PDF 举报
at", string) # 提取出的结果 \n
print(rst.group()) # 输出匹配到的字符
# 通用字符作为原子
string = "I love Python programming."
pat = "\w+"
rst = re.findall(pat, string)
print(rst) # 输出 ['love', 'Python', 'programming']
# 聚焦网络爬虫
聚焦网络爬虫与通用网络爬虫不同,它更加有针对性,主要用于特定主题的信息采集。例如,如果我们想要抓取关于Python编程的博客文章,聚焦爬虫会先定位到包含这些信息的网站,然后只抓取与Python相关的页面,而忽略其他不相关的内容。
# 爬虫的基本步骤
1. 发送请求:使用Python的requests库向目标网址发送HTTP请求。
2. 获取响应:接收服务器返回的HTML或其他格式的网页内容。
3. 解析数据:使用BeautifulSoup、lxml等库解析HTML,提取所需数据。
4. 数据存储:将提取到的数据保存到文件(如CSV、JSON)或数据库中。
5. 循环抓取:根据网页结构和链接关系,遍历网站的其他页面,实现深度抓取。
# 正则表达式实例
1. 匹配邮箱地址:`[\w\.-]+@[\w-]+(\.[\w-]+)+`
2. 匹配URL:`http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+`
3. 匹配手机号码(中国):`\d{11}`
4. 匹配日期格式(YYYY-MM-DD):`\d{4}-\d{2}-\d{2}`
# 爬虫中的正则表达式应用
在爬虫中,正则表达式常用于提取网页中的特定信息,如链接、标题、时间等。例如,使用正则表达式从HTML中提取所有链接:
```python
import re
from urllib.parse import urljoin
def extract_links(html, base_url):
pat = '<a[^>]*href="(.*?)"[^>]*>'
links = re.findall(pat, html)
return [urljoin(base_url, link) for link in links]
```
# Python的re模块
Python的re模块提供了正则表达式的相关功能,包括`search()`(查找第一个匹配项)、`match()`(从字符串开始位置查找)、`findall()`(查找所有匹配项)和`sub()`(替换匹配的字符串)等。
总结:
本资源主要介绍了Python网络爬虫的基本概念,包括网络爬虫的定义、功能以及查看模块功能的方法。同时,讲解了网络爬虫的工作原理,区分了通用网络爬虫与聚焦网络爬虫,并深入探讨了正则表达式,包括原子、元字符、模式修正符、贪婪模式与懒惰模式等概念,以及正则表达式的实际应用。最后,简要提到了爬虫的基本工作流程和正则表达式在爬虫中的运用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-08-14 上传
2021-02-18 上传
2024-05-18 上传
2024-04-25 上传
2024-04-25 上传