目录
简介
示例
post示例
get示例
以下均为个人的学习理解,希望对各位有用
简介首先对requests库和re库要有一个清晰的功能定位。requests库是用来获取网页源代码的,使用re库的正则化匹配从获取的网页源代码中匹配得到我们所需要的信息。
如需学习re库通过以下连接进行学习正则表达式——python对字符串的查找匹配_我就是一个小怪兽的博客-CSDN博客_python 查找匹配字符串
requests发送请求的方式又get和post两种,两者最直观就是get获取时,数据可以出现在url中,而post获取时,需要在post方法中另外指定data参数来指定数据,url等参数的获取都通过待爬取的页面右键中的检查来得到
示例
post示例
最简单的例子,比如百度翻译来翻译一个单词,今年是虎年我们就翻译tiger,我们获取翻译后页面的信息,示例如下:
import requests
import re
url='https://fanyi.baidu.com/sug'
s=input('请输入一个英语单词n')
dic={'kw':s}
r=requests.post(url,data=dic)
tt=r.json()
print(tt)
r.close()
运行结果如下:
请输入一个英语单词
tiger
{'errno': 0, 'data': [{'k': 'tiger', 'v': 'n. 老虎; 各种猫科动物; 凶恶的人,虎狼之徒'}, {'k': 'Tiger', 'v': '[人名] 泰格; [地名] [美国] 泰格'}, {'k': 'TIGER', 'v': 'abbr. testabitily insertion guidance expert system'}, {'k': 'tigers', 'v': 'n. 老虎( tiger的名词复数 ); 凶猛的人; 勇士; 猛士'}, {'k': 'tigery', 'v': 'adj. tiger(给…画虎纹般条纹)的变形'}]}***Repl Closed***
get示例
下面是使用get方法获取腾讯官网的源代码中想要的含有“北”字的词语
#若服务器验证是否通过正常的浏览器来进行访问,会被反爬,需指定headers参数隐藏
#verify忽略安全验证
#params参数指定数值,效果和url问号后面加一串参数效果相同
import requests
import re
url='https://www.qq.com/'
#若服务器验证是否通过正常的浏览器来进行访问,会被反爬,需指定headers参数隐藏
#verify忽略安全验证
#params参数指定数值,效果和url问号后面加一串参数效果相同
r=requests.get(url,verify=False)#verify
r.encoding='gb2312'
tt=r.text#获取需要的源代码
p=re.compile('(?P北.*?)<')
results=p.findall(tt)
print(results)
r.close()#最后关闭请求
输出结果如下:
D:pythonlibsite-packagesurllib3connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.qq.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
warnings.warn(
['北京市', '北京市', '北省', '北省', '北京市', '北京市', '北京”', '北京连续10天无本土新增!新增2例境外输入无症状感染者', '北京昨日新增报告3例确诊病例 均在大兴区', '北京雷雨频繁 外出需注意防雷避雨', '北京疫情只是小范围反弹,中国拒绝第二波疫情', '北京发布病例详情 多名隔离人员发病不报告', '北京多人隔离14天后确诊,专家称有两方面原因', '北京市银行停业一周?五大行辟谣:仅个别风险区网点暂停', '北京6月30日有3地疫情风险等级降级', '北京疫情流调三大焦点', '北京:已经出院的新冠肺炎患者 未发现人传人现象', '北京:此次疫情重症和危重症患者比例明显偏低', '北京:二级以上医疗机构非急诊全面预约实行常态化机制', '北京公积金账户余额可直接用来还贷款了!', '北京57家公立医疗机构核酸检测预约电话公布', '北京近4日有37例确诊病例来自集中隔离点', '北大学霸谈冬奥,最期待高山速滑', '北京冬奥会', '北京互联网法院法律服务工作站']
[Finished in 0.5s]



