第一次爬虫成功了
本帖最后由 双眼皮的微笑 于 2022-4-25 16:40 编辑@txq0211 根据这位大佬的帖子→https://www.52pojie.cn/thread-1615729-1-1.html 成功让我一个新手爬虫成功,虽然只是简单的爬虫,但是给我带来了成功的快感{:301_997:} ,让我更加积极的去学习Python。(我刚把Python基础学完,不经意间刷到了这篇帖子,所以就勾起我的兴趣)
# coding:utf-8
import re
import requests
# 爬虫试验
url = 'http://bbs.tianya.cn/post-no04-2817267-1.shtml'
resp = requests.get(url).text
# 这里用的正则表达式的非贪婪匹配话说非贪婪我没搞懂啥意思
maplists = re.findall('original="(.+?)"', resp)
def start():
i = 0
for pic_url in maplists:
pic = requests.get(pic_url)
i += 1
path = '%d.jpg' % i
with open('C:/Users/Administrator/Desktop/' + path, 'wb') as f:
f.write(pic.content)
print('已经完成输出第%d张图片' % i)
if __name__ == '__main__':
start()
这里有个问题就是有些网站图片检索出来的格式是<img src='地址'>这种又怎么爬取呢? 如果直接匹配src,匹配出来是一个空列表,求解?
如果有违规,请版主删帖,谢谢。
src没有数据,是因为图片是懒加载的。打开网页后打开DevTools,在DevTools中多往后翻,但不要滚动网页本身的滚动条,然后在DevTools中找到网页中当前视区后面的图片的img标签,你会发现它的src不是你想要的,真正的图片链接在其他属性中,不同的网站用的属性名不同,需要具体分析。然后再滚动网页,你会发现src又变成你需要的链接了,因为图片被滚动到你的视区了,这样子对于网站来说,减轻压力,用户浏览多少就加载多少,用户体验好;若是一下全加载完所有图片,服务器压力大,用户体验也差,用户会觉得要等几秒才能看到内容。
.+? 这个问号就是非贪婪,意思就是尽量少匹配点,如果去掉问号就是贪婪,那就匹配不到url了 就像通配符的意思是吧,*号?号,现在搞成贪婪这种新名词了 平淡最真 发表于 2022-4-25 16:31
.+? 这个问号就是非贪婪,意思就是尽量少匹配点,如果去掉问号就是贪婪,那就匹配不到url了
奥 谢谢。 {:301_993:}不错不错,我也要学起来 xpath爬取方便点 加油,我是三天打鱼两天晒网,到头来一事无成。向你学习。
可喜可贺!可喜可贺! 想向你学习,我也是三天打鱼二天晒网,支持你。
哈哈,加油