小菜人家 2020-09-01 13:22 采纳率: 0%
浏览 128

为什么我的用python提取网页信息时会有width="100"/>\n</a>\n</div>\n<div class="info']这段去不掉

为什么我的用python提取豆瓣网页信息时会有 width="100"/>\n\n\n<div class="info']这段信息去不掉!
图片说明
代码如下:

findlink = re.compile(r'<a href="(.*?)">')  # 创建正则表达式对象,表示规则(字符串模式)
# 获取到影片图片链接的规则
findImgsrc = re.compile(r'<img.*src="(.*?)">', re.S)  # re.S让换行符包含字符中
# 获取到影片片名链接的规则
findTitle = re.compile(r'<span class="title">(.*)</span>')
# 获取到影片评分链接的规则
findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
# 评价人数
findNum = re.compile(r'<span>(\d*)人评价</span>')
# 概况
findContent = re.compile(r'<span class="inq">(.*)</span>')
# 找到的相关内容
findBd = re.compile(r'<p class="">(.*?)</p>', re.S)


# 清洗网页
def getData(baseurl):
    datalist = []
    for i in range(0, 10):
        url = baseurl + str(i * 25)
        html = askURL(url)

        # 逐一解析数据
        soup = BeautifulSoup(html, "html.parser")
        for item in soup.find_all("div", class_="item"):  # 查找符合要求的字符串,形成列表
            # print(item) #测试;查看电影item全部信息
            data = []  # 保存一部电影的全部信息
            item = str(item)
            link = re.findall(findlink, item)[0]  # re库通过正则表达式查找指定字符串
            data.append(link)  # 添加影片链接
            img = re.findall(findImgsrc, item)
            data.append(img)  # 添加影片图片
            title = re.findall(findTitle, item)
            if len(title) == 2:
                data.append(title[0])  # 添加影片中文名
                otitle = title[1].replace("\xa0/\xa0", "")  # 去掉外文电影名中的\符号
                data.append(otitle)  # 添加影片外文名
            else:
                data.append(title)
                data.append(" ")
            rating = re.findall(findRating, item)[0]
            data.append(rating)  # 添加影片评分
            num = re.findall(findNum, item)[0]
            # print(type(num))
            data.append(num)  # 添加影片评分人数
            content = re.findall(findContent, item)
            if len(content) != 0:
                content = content[0].replace("。", "")
                data.append(content)  # 添加影片概述
            else:
                data.append(" ")
            bd = re.findall(findBd, item)[0]
            bd = re.sub("<br(\s+)?/>(\s+)?", " ", bd)  # 去掉</br>
            bd = re.sub("/", " ", bd)
            data.append(bd.strip())  # 添加影片详情
            datalist.append(data)
        print(datalist)
    return datalist

求大佬解答

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-09-01 14:20
    关注
    findImgsrc = re.compile(r'\<img.*?src\=\"([^\"]*?)\"\>', re.S)  # re.S让换行符包含字符中
    
    评论

报告相同问题?

悬赏问题

  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备