双眼皮的微笑 发表于 2022-4-25 16:24

第一次爬虫成功了

本帖最后由 双眼皮的微笑 于 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,匹配出来是一个空列表,求解?

如果有违规,请版主删帖,谢谢。

萌新与小白 发表于 2022-4-25 20:23

src没有数据,是因为图片是懒加载的。打开网页后打开DevTools,在DevTools中多往后翻,但不要滚动网页本身的滚动条,然后在DevTools中找到网页中当前视区后面的图片的img标签,你会发现它的src不是你想要的,真正的图片链接在其他属性中,不同的网站用的属性名不同,需要具体分析。然后再滚动网页,你会发现src又变成你需要的链接了,因为图片被滚动到你的视区了,这样子对于网站来说,减轻压力,用户浏览多少就加载多少,用户体验好;若是一下全加载完所有图片,服务器压力大,用户体验也差,用户会觉得要等几秒才能看到内容。

平淡最真 发表于 2022-4-25 16:31

.+?   这个问号就是非贪婪,意思就是尽量少匹配点,如果去掉问号就是贪婪,那就匹配不到url了

lhlking 发表于 2022-4-25 16:35

就像通配符的意思是吧,*号?号,现在搞成贪婪这种新名词了

双眼皮的微笑 发表于 2022-4-25 16:38

平淡最真 发表于 2022-4-25 16:31
.+?   这个问号就是非贪婪,意思就是尽量少匹配点,如果去掉问号就是贪婪,那就匹配不到url了

奥 谢谢。

淼先森 发表于 2022-4-25 16:39

{:301_993:}不错不错,我也要学起来

yn9 发表于 2022-4-25 16:52

xpath爬取方便点

mq0192 发表于 2022-4-25 16:53

加油,我是三天打鱼两天晒网,到头来一事无成。向你学习。

hs248613 发表于 2022-4-25 16:58

可喜可贺!可喜可贺!

majunxdwm 发表于 2022-4-25 17:10

想向你学习,我也是三天打鱼二天晒网,支持你。

hackerbob 发表于 2022-4-25 17:13

哈哈,加油
页: [1] 2 3 4 5
查看完整版本: 第一次爬虫成功了