Python如何利⽤正则表达式爬取⽹页信息及图⽚
⼀、正则表达式是什么?
概念:
正则表达式是对字符串操作的⼀种逻辑公式,就是⽤事先定义好的⼀些特定字符、及这些特定字符的组合,组成⼀个“规则字符串”,这个“规则字符串”⽤来表达对字符串的⼀种过滤逻辑。
正则表达式是⼀个特殊的字符序列,它能帮助你⽅便的检查⼀个字符串是否与某种模式匹配。
个⼈理解:
简单来说就是使⽤正则表达式来写⼀个过滤器来过滤了掉杂乱的⽆⽤的信息(eg:⽹页源代码…)从中来获取⾃⼰想要的内容⼆、实战项⽬
1.爬取内容
获取上海所有三甲医院的名称并保存到.txt⽂件中
2.访问链接
3.正则表达式书写的灵感
进⼊⽹站查看本页⾯的源代码发现:医院的名称都是放在⼀个
<div class="province-box"> ...... </div>
盒⼦⾥我们只需要直接把这个盒⼦⾥⾯的数据过滤⼀下就⾏
正则表达式:
法⼀:
1.⼀级过滤 :
<div class="province-box">(.*)<div class="wrap-right">
开头是:<div class="province-box"> (.*)  结尾是:<div class="wrap-right">
2.⼆级过滤:
title="(.*[院⼼部])*)" 获取title=" " ⾥⾯的信息
法⼆:
优化后⼀次性过滤:
<li><a href="/[^/].*/" rel="external nofollow" rel="external nofollow" target="_blank" title="(.*)">
贴图⽚
开头是:
结尾是:
4.项⽬源代码
import requests
import re
url = "yyk.99/sanjia/shanghai/"
# 模拟浏览器的访问
headers ={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) '
'Gecko/20100101 Firefox/87.0'}
res = (url,headers=headers)
if res.status_code == 200:
#1.获取⽹页源代码
raw_text =
#2.正则表达式书写:
#2.2注意:正则表达式默认匹配的是⼀⾏我们的源代码是多⾏匹配的要加另⼀个参数 re.DOTALL
#2.3正则法⼀:
#re.findall() 返回的是lsit集合⼀次过滤
re_res = re.findall(r'<div class="province-box">(.*)<div class="wrap-right">', raw_text,re.DOTALL)
#re_res[0] 获取下标是的数据⼆次过滤
res=re.findall(r'title="(.*[院⼼部])*)"',re_res[0])
#检查打印获取到的信息
print(res)
#2.4正则法⼆:
#(优化)不⽤⼆次过滤⼀次过滤就解决了
# re_list = re.findall(r'<li><a href="/[^/].*/" rel="external nofollow"  rel="external nofollow"  target="_blank" title="(.*)">', )
#print(re_list)
# 写⼊⽂件中
read = open("上海医院名单", "w", encoding='utf-8')
for i in res:
read.write(i)
read.write("\n")
read.close()
else:
print("error")
项⽬⽬录:
部分结果:
python 正则表达式-提取图⽚地址
import os,sys,time,json,time
import socket,random,hashlib
import requests,configparser
import json,re
from datetime import datetime
python正则表达式判断from multiprocessing.dummy import Pool as ThreadPool
def getpicurl(url):
url = "itu/zipai/comment-page-352"
html = (url).text
pic_url = re.findall('img src="(.*?)"',html,re.S)
for key in pic_url:
print(key + "\r\n")
#print(pic_url)
getpicurl("itu/zipai/comment-pag.e-352")
输出结果:
总结
到此这篇关于Python如何利⽤正则表达式爬取⽹页信息及图⽚的⽂章就介绍到这了,更多相关Python正则表达式爬取内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!