请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我要提取的有两个div 如何提取呢,去掉贪婪模式?

图片描述
from urllib import request
import requests
from io import BytesIO
import gzip
import re

url = ‘https://www.douyu.com/g_DOTA2
#这里如果用group的话就提取不到代码块中间的dev
root_pattern = '<div class=“DyListCover-info”>[\s\S]*?</div>'
r = request.urlopen(url)
htmls = r.read()
buff = BytesIO(htmls)
f = gzip.GzipFile(fileobj=buff)
htmls = f.read().decode(‘utf-8’)
root_html = re.findall(root_pattern, htmls)
for html in root_html:
print(html)

正在回答

2回答

你要提取的具体是哪部分内容可否标记出来

0 回复 有任何疑惑可以回复我~
  • 提问者 毛毛和吉吉 #1
    七月老师您好:我要提取的内容就是根据您课件里讲的一样,当时您选择得熊猫直播,现在我是选择斗鱼,想提取得内容也是主播名字和热度,代码在我问题的截图中,最外层div中的内容;你课程中的主播名称是在一个span中,而我本次的是在一个div中;所以我如此提取:root_pattern = '<div class=“DyListCover-info”>[\s\S]*?</div>' 修改为
    
    root_pattern = '<div class=“DyListCover-info”>([\s\S]*?)</h2>'  
    
    目前可以匹配出我想要的内容,不知道是否符合规则逻辑
    回复 有任何疑惑可以回复我~ 2020-09-09 18:50:49
  • 7七月 回复 提问者 毛毛和吉吉 #2
    可以 其实这个方案是很多的 并不是说一定要匹配哪个结点,只要能获取到想要的数据即可
    回复 有任何疑惑可以回复我~ 2020-09-10 01:14:45
  • 提问者 毛毛和吉吉 回复 7七月 #3
    谢谢老师
    回复 有任何疑惑可以回复我~ 2020-09-10 08:44:21
提问者 毛毛和吉吉 2020-09-09 16:39:14

root_pattern = '<div class=“DyListCover-info”>[\s\S]*?</div>' 修改为

root_pattern = '<div class=“DyListCover-info”>([\s\S]*?)</h2>'  

目前可以匹配出我想要的内容,不知道是否符合规则逻辑

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号