用最简单的白话教你入门python爬虫(三)

本文通过实例解析Python爬虫基础,使用BeautifulSoup库抓取豆瓣电影Top250前25名的电影信息。讲解了BeautifulSoup作为网页解析库的优势和不同解析器的使用,以及爬取前的准备工作,包括设置请求头和理解请求参数。通过F12开发者工具分析网页结构,找到电影信息所在的li标签,并使用循环遍历提取数据。代码详细分析了如何查找和提取电影标题,引导读者理解爬虫基本思路。
摘要由CSDN通过智能技术生成

上次在最后留了爬取豆瓣排名前25的爬取代码,本次就代码一步步分析,用你能听懂的话来带你认识简单易懂的爬虫,请多多支持,爱你们,有问题在评论区留下你的疑问!

1.BeautifulSoup是什么?

灵活又方便的网页解析库,处理高效,支持多种解析器。
利用它不用编写正则表达式即可方便地实现网页信息的提取。
安装:pip3 install BeautifulSoup4

解析器使用方法优势劣势
Python标准库BeautifulSoup(markup, “html.parser”)Python的内置标准库、执行速度适中 、文档容错能力强Python 2.7.3 or 3.2.2)前的版本中文容错能力差
lxml HTML 解析器BeautifulSoup(markup, “lxml”)速度快、文档容错能力强需要安装C语言库
lxml XML 解析器BeautifulSoup(markup, “xml”)速度快、唯一支持XML的解析器需要安装C语言库
html5libBeautifulSoup(markup, “html5lib”)最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档速度慢、不依赖外部扩展
2.爬取前准备工作

本次实例:爬取豆瓣电影top250前25名
本次爬取网址:“https://movie.douban.com/top250?start=0”
本次所用库:

  • requests库
  • BeautifulSoup解析库
  • 3.爬取全程分析
    3.1 爬取代码
    import requests #导去requests库
    from bs4 import BeautifulSoup
    url="https://movie.douban.com/top250?start=0" #豆瓣top250网址
    headers={
        "user-agent":"chrom/10"
    }
    r=requests.get(url=url,headers=headers) #获取响应对象
    demo=r.text
    List=[]
    t=BeautifulSoup(demo,"html.parser")
    for i in range(0,25):
        item=t.find_all("div","item")[i]
        data=[]
        data.append(item.find_all("span","title")[0].text)
        List.append(data)
    print(List)
    
    3.2代码分析

    url=“https://movie.douban.com/top250?start=0”

    注意"top250?start=0"
    这里就是https://blog.csdn.net/qqshenbaobao/article/details/117437018?spm=1001.2014.3001.5501.这篇博客里所说的请求参数,通过get方法或者post请求方法可以传入参数;
    这里的top250参数就是电影排名前250的主网页,如下:
    在这里插入图片描述
    这里我试了很多遍filter的参数传入,输入很多发现对界面没有影响,如果小可爱们知道这个是干嘛的可以在评论区给出,博主知识尚有不足,请海涵。
    在这里插入图片描述

    在这里插入图片描述
    确实,通过多次尝试,这里的start参数指的是界面第一个电影排名信息!!!
    由此可见,我们可以通过传入参数不同来获取我们想要的排名域,从而定向爬取我们想要的信息,怎么做呢?你需要尝试多多使用开发者工具,也就是F12键,这是程序员不错的开发工具,能帮你做很多事情,来吧,一起分析下去
    在这里插入图片描述
    单个li:
    在这里插入图片描述

    通过审查元素,可以看出每个电影信息都藏在li标签中,因此可以通过BeautifulSoup的解析来提取我们想要的信息

    t=BeautifulSoup(demo,“html.parser”)
    这里的demo即网页内容,你大可以通过requests库来获得网页内容,你可以在博主前面的博客中复习下相关知识
    这行代码是固定的BeautifulSoup解析网页内容的套路模板,当然你可以用别的解析,但是前提是满足所需条件
    for i in range(0,25):

    为啥用循环?为啥是25次循环?
    25个li,一页25个电影信息,学会f12开发者工具你就会非常清晰的明白。

    item=t.find_all(“div”,“item”)[i]
    这里用的是BeautifulSoup里的查找元素的方法,返回的是列表"div"指的是标签名,"item"指的是标签元素对应的class即类名,通过标签名和类名定位每一个电影所在位置,再爬取信息,一步步来!

    关于BeautifulSoup解析库相关获取元素的各种属性的方法将在下期博客,请继续关注!

    下面获取电影名也是同样的道理,本博客旨在引导大家理解思想,相关细节可能会照顾不到,有问题的可以在评论区提出,我会一一解答!

    好了,就到这里了,我们下期再见!!!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

拉不拉斯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值