# 爬虫最佳流程
# 导入模块
import requests
import re
# 定义url
url="https://item.jd.com/10038899648257.html"
# 定义头部信息(通过F12或者右键检查获取,刷新)
headers= {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62"}
# 调用requests,url,headers,返回网页的HTML编码
response = requests.get(url, headers=headers)
# 将HTML编码解码返回文本
response_text = response.text
print(response_text)
# 通过正则化提取所需要的文本(通过查看response_text,找到需要的文本,通过正则化获取所需要的文本)
# 定义一个正则表达式变量,使用一个非贪婪匹配.*?
a = "<li title='OPPOA11s'>商品名称:(.*?)</li>"
# 将正则字符串编译成正则表达式对象
a_pattern = re.compile(a, re.S) # 由于.是匹配任意字符,除了换行符匹配不了,所以加上修饰符re.S就可以解决这个问题了
# 调用re.findall()方法会依此扫描字符串,找到所有符合规则的字符串,然后返回匹配内容,如果搜索完没有找到,就返回None
result = re.findall(a_pattern, response_text)
print(result)
"""
re.match()方法在使用时是从字符串的开头开始匹配的
re.search()方法会依此扫描字符串,直到找到第一个符合规则的字符串,然后返回匹配内容,如果搜索完没有找到,就返回None
re.findall()方法会依此扫描字符串,找到所有符合规则的字符串,然后返回匹配内容,如果搜索完没有找到,就返回None
还需要在合适的地方对re.sub()方法进行使用,往往会起到事半功倍的效果
"""
个人笔记:爬虫的惯用流程
最新推荐文章于 2024-11-11 22:41:20 发布