【安全开发】python—基于正则表达式的爬虫_haoaaao的博客-爱代码爱编程
0x00 前置
1、搜索引擎 :百度、谷歌、企业内部知识库
2、互联网:公网(无需授权)、深网(需要授权)、暗网(非正式渠道,无法使用常规手段访问,友情提醒:没事别看)
3、规则:爬取互联网公开的信息,但正常情况也需要遵守robots协议(网络爬虫君子协议,网站通过robots协议告诉搜索引擎哪些页面可以抓,哪些不能抓,通常放在网站robots.txt文件下)。
0x01 原理
1、html可以着字符串处理方式对响应进行解析处理。其次,html本身也是一种标记语言,与xml同源,所以可以使用dom对其文本进行处理。
2、所有爬虫,核心基于超链接,实现网站和网页的跳转。
0x02 正则表达式爬取
代码:
#功能:正则表达式爬取网页超链接
import re, requests
resp = requests.get('http://news.baidu.com/')
#解析网页的所有超链接
links =re.findall('<a href="(.+?)"', resp.text)
for link in links:
#排除无用超链接
if 'void(0)' in link: ##去掉"void()字段"
continue
if 'target' in link:
continue
if link.startswith('#'): #以#开头则去掉
continue
#对部分出现的反斜杠目录进行拼接处理,超链接进行处理,拼接出完整的url地址
if link.startswith('/'):
link = 'http://news.baidu.com/'+link
print(link)
结果: