盘点一个Python网络爬虫的正则表达式问题

2023-09-24 19:08:02 浏览数 (2)

大家好,我是皮皮。

一、前言

前几天在Python钻石群【空】问了一个Python网络爬虫的问题,一起来看看吧。下面是他的代码。

代码语言:javascript复制
mport re

html='''
< img src="//www.chinadaily.com.cn/image_e/2017/logo.png" alt="chinadaily" />
        </a >
      </div>
      <div class="fl-right">
        <a href="//cn.chinadaily.com.cn" target="_top" shape="rect">< img src="//www.chinadaily.com.cn/image_e/2017/cnbut.png" />


'''

# print(html)
reg=r"<img. src="
m=re.search(reg,html)
print(m)
a=m.end()
# print(a)
s=html[a:]
# print(s)
n=re.search(r"". "",s)
# print(n)
b=n.end()
# print(b)
src=s[:b]
print(src)

二、实现过程

后来【瑜亮老师】给了一个建议,代码如下所示:

代码语言:javascript复制
import re

html = '''
< img src="//www.chinadaily.com.cn/image_e/2017/logo.png" alt="chinadaily" />
        </a >
      </div>
      <div class="fl-right">
        <a href="//cn.chinadaily.com.cn" target="_top" shape="rect">< img src="//www.chinadaily.com.cn/image_e/2017/cnbut.png" />


'''
reg = r'< img src="//(.*?)"'
m = re.findall(reg, html)
print(m)

这样就可以获取所有的图片地址,顺利地解决了粉丝的问题。

后来还给了一个具体的爬虫代码,如下所示:

代码语言:javascript复制
url="http://www.chinadaily.com.cn/"
html = requests.get(url).text
reg = r'img src="//(.*?)"'
img = re.findall(reg, html)

for i in img:
    i = "http://"   i
    if 'jpeg_w642' in i:
        i = i.replace('.jpeg_w642', '.jpeg')
    resp = requests.get(i).content
    with open(i.split('/')[-1], 'wb') as f:
        f.write(resp)

这样就可以抓取到对应的图片了,非常完美。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python网络爬虫中正则表达式的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【空】提问,感谢【瑜亮老师】给出的思路和代码解析,感谢【莫生气】等人参与学习交流。

0 人点赞