import requests
import re
from multiprocessing import Pool
# 正则表达式解析
'''
正则表达式贪婪匹配步骤:
1、re.compile书写正则表达式
2、re.finditer对整个目标文本进行迭代搜索匹配
3、循环:在匹配完后把所需要的信息进行提取
'''
def parse(response):
# step:1
resp = re.compile(r'title="(?P<name>.*?)class="image-link".*?'
r'<p class="star">(?P<star>.*?)</p>.*?', re.S)
# step:2
items = resp.finditer(response)
# step:3
for item in items:
print(item.group('name').strip())
print(item.group('star').strip())
# 主函数
'''
requests爬虫基本框架:
1.url网址
2.头文件:cookie、headers
3.params参数
4.get/post请求获取json格式或text文本
'''
def main(offset):
# step:1
url = 'https://www.maoyan.com/board/4'
# step:2
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.64'
}
# step:3
params = {
'requestCode': '5fcc2cff819df07687a41ed0dada9239pduxy',
'offset': offset
}
# step:4
response = requests.get(url, headers=headers, params=params).text
parse(response)
# 程序入口
if __name__ == '__main__':
# 快速爬取:多进程
pool = Pool()
pool.map(main, [i * 10 for i in range(11)])
Python爬虫正则表达式示例
于 2023-05-01 23:13:35 首次发布