Python网络爬虫入门:查看模块、理解概念与正则表达式

0 下载量 167 浏览量 更新于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网络爬虫的基本概念,包括网络爬虫的定义、功能以及查看模块功能的方法。同时,讲解了网络爬虫的工作原理,区分了通用网络爬虫与聚焦网络爬虫,并深入探讨了正则表达式,包括原子、元字符、模式修正符、贪婪模式与懒惰模式等概念,以及正则表达式的实际应用。最后,简要提到了爬虫的基本工作流程和正则表达式在爬虫中的运用。