python爬虫:requests和urllib爬豆瓣Top250


前言

开始使用urllib模块爬的豆瓣top250感觉太多了,跟着视频做还是由很多看不懂
后来在另外一个视频里找到了一样的项目但是使用requests模块做的感觉代码简单好多主要是返回的数据格式很好不用再取优化,省了很多功夫。


一、urllib

from bs4 import BeautifulSoup  # 网页解析,获取数据
import re  # 正则表达式,进行文字匹配
import urllib.request,urllib.error   # 制定url,获取网页数据
import xlwt  # 进行excel操作


def main():
    baseurl = "https://movie.douban.com/top250?start="  # 每一个网页的url都是有规律的
    # 1.爬取网页并逐个页面解析
    datalist = getData(baseurl)
    # 2.保存数据
    sava_path = "豆瓣电影Top250.xls"
    saveData(datalist, sava_path)


# 影片详情链接的抽象特征(正则匹配)
# .*:贪婪匹配(匹配所有字符)  .*?:惰性匹配(匹配到了一个字符就不匹配了)
# 括号是匹配到一个后,把括号里面的东西拿出来
findLink = re.compile(r'<a href="(.*?)">')  # 创建正则表达式对象,表示规则(字符串的模式)模糊查找的抽象特征
# 影片图片
findImgSrc = re.compile(r'<img.*src="(.*?)"', re.S)  # 让换行符包含在里面
# 影片名
findTitle = re.compile(r'<span class="title">(.*)</span>')
# 评分
findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
# 评价人数
findJudge = re.compile(r'<span>(\d*)人评价</span>')
# 找到概况
findInq = 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):  # 左闭右开,拿到250条所有页面
        url = baseurl + str(i*25)
        html = askURL(url)  # 保存获取到的网页

        # 2.逐一解析数据
        soup = BeautifulSoup(html, "html.parser")
        for item in soup.find_all('div', class_="item"):  # 查找符合要求的字符串形成列表,加个下划线表示属性
            data = []  # 保存一部电影的所有信息
            item = str
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本色温华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值