python3爬虫之入门基础和正则表达式

  • Post category:Python

Python3爬虫之入门基础和正则表达式攻略

1. 爬虫的入门基础

1.1 爬虫的定义

爬虫(Spider),是网络爬虫的简称,是一种程序,能够按照一定的规则,自动地抓取互联网上特定网站上的信息,并将这些信息存储到本地。爬虫的用途非常广泛,例如数据挖掘、搜索引擎、自动化测试等。

1.2 爬虫的原理

爬虫的原理通常分为以下几步:

  1. 发送HTTP请求:爬虫首先要发送HTTP请求,获取所需要的网页数据。

  2. 解析HTML代码:爬虫需要解析HTML代码,提取有用的数据信息。

  3. 存储数据:爬虫需要将抓取到的数据存储到本地或者数据库中。

1.3 爬虫的基本流程

爬虫的基本流程通常分为以下几步:

  1. 发送请求。可以使用Python的requests模块发送HTTP请求,获取网页源代码。

  2. 解析HTML代码。可以使用Python的BeautifulSoup模块对HTML代码进行解析,提取所需数据。

  3. 存储数据。可以使用Python的csv模块将数据存储到csv文件中,可以使用Python的pymysql模块将数据存储到MySQL数据库中。

1.4 Python中的常用库

Python中常用的爬虫库有requests、BeautifulSoup、re、csv、pymysql等。其中requests库用于发送HTTP请求,BeautifulSoup库用于解析HTML代码,re库用于正则表达式匹配,csv库用于存储数据到csv文件中,pymysql用于存储数据到MySQL数据库中。

2. 正则表达式

2.1 正则表达式的定义

正则表达式是一种强大的文本匹配模式,在编程中经常用于有效地搜索、替换、过滤文本。Python中内置了re模块,可以用来操作正则表达式。

2.2 正则表达式的语法

正则表达式的语法比较复杂,其基本语法有以下几种:

符号 描述
. 表示任意单个字符,除了换行符之外的任意字符
^ 表示行首字符的匹配
$ 表示行尾字符的匹配
* 表示前一个字符的任意个数,可以是0个
+ 表示前一个字符的至少一个
? 表示前一个字符的零个或一个
{m,n} 表示前一个字符的m至n个
[…] 表示[]中任意一个字符
[^…] 表示[]中除了…之外任意字符
(regex1|regex2) 表示regex1或者regex2其中之一

2.3 正则表达式的常用方法

方法 描述
search() 会扫描整个字符串查找匹配项
findall() 返回一个列表包含有字符串中所有的匹配项
sub() 用于替换匹配项
compile() 用于编译正则表达式

3. 示例说明

3.1 爬取网站信息

以下是一个简单的示例,用Python爬取网站信息:

import requests
from bs4 import BeautifulSoup

url = 'https://www.baidu.com/'
r = requests.get(url)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'html.parser')
print(soup.title.string)

上述代码中,首先引入了requests模块和BeautifulSoup模块,然后使用requests模块发送HTTP请求,获取网页源代码。接着使用BeautifulSoup模块对HTML代码进行解析,提取网页标题,并打印出来。

3.2 使用正则表达式匹配字符串

以下是一个简单的示例,使用正则表达式匹配字符串:

import re

pattern = r'\d+'
string = 'hello123world456good'
result = re.findall(pattern, string)
print(result)

上述代码中,定义了一个正则表达式,用于匹配字符串中的数字。然后使用re模块的findall()方法,查找匹配项,并将匹配结果保存到列表中,并打印出来。

4. 总结

本文从爬虫的定义、原理、基本流程、Python中的常用库和正则表达式的基本语法、常用方法等方面,对初学者进入爬虫领域提供了一些基础的知识和示例。同时,对于更深入的学习,需要进一步的理解和实践。