Python抓取豆瓣电影的名称,前两个还正常,为啥到后面,成了英文原名啊

共 2339字,需浏览 5分钟

 ·

2022-04-28 23:04

点击上方“Python共享之家”,进行关注

回复“资源”即可获赠Python学习资料

我行殊未已,何日复归来。

大家好,我是皮皮。

一、前言

前几天在Python黄金交流群有个叫【IRONIC】的粉丝问了一个Python网络爬虫的问题,这里拿出来给大家分享下,一起学习下。

他的代码如下:

import requests
from bs4 import BeautifulSoup
#获取相应数据
url = 'https://movie.douban.com/top250'
headers = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.3161 SLBChan/11'
}
r = requests.get(url,headers=headers)

#解析数据
#BeautifulSoup(名称.text(以文本的形式存入),'html.parser'Python内置库)
soup = BeautifulSoup(r.text,'html.parser')

ranks = soup.find_all('em',class_='')
titles = soup.find_all('span',class_='title')
bds = soup.find_all('p',class_='')
rates = soup.find_all('span',class_='rating_num')
quotes = soup.find_all('span',class_='inq')
#通过循环取出

for i in range(25):
    print(ranks[i].text,
          titles[2*i].text,
          bds[i].text,
          rates[i].text,
          quotes[i].text)

可以看到Python抓取豆瓣电影的名称,前两个还正常,到后面,成了英文原名了。

二、解决过程

这个问题倒不是很难,原始网页中的源代码长这样。

那么可以看到那个title有两个,一个中文,一个英文。【月神】这里给了一个更好的思路。

这里给出了具体的代码,一气呵成。

import requests
from bs4 import BeautifulSoup
#获取相应数据
url = 'https://movie.douban.com/top250'
headers = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.3161 SLBChan/11'
}
r = requests.get(url,headers=headers)

#解析数据
#BeautifulSoup(名称.text(以文本的形式存入),'html.parser'Python内置库)
soup = BeautifulSoup(r.text,'html.parser')

movie_ranks = []
lis = soup.find_all('li', class_=None)
for li in lis:
    if li.find_all('em', class_=''):
        ranks = li.find('em', class_='').text
        titles = li.find('span',class_='title').text
        bds = li.find('p',class_='').text
        rates = li.find('span',class_='rating_num').text
        quotes = li.find('span',class_='inq').text
        print(ranks, titles, bds, rates, quotes)

这样的话,理解起来就简单很多了。【月神】代码运行之后的结果,如下图所示,可以看到电影名称都出来了。

完美地帮助粉丝解决了问题。

三、总结

大家好,我是皮皮。这篇文章主要分享了Python抓取豆瓣电影的名称,前两个还正常,到后面成了英文原名的问题,针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

最后感谢粉丝【IRONIC】提问,感谢【月神】、【格格物 এ คิดถึง】给出的具体解析和代码演示,感谢【dcpeng】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【

万水千山总是情,点个【在看】行不行

浏览 42
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报