首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python抓取豆瓣电影的名称,前两个还正常,为啥到后面,成了英文原名啊

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

作者头像
前端皮皮
发布2022-08-17 17:07:41
发布2022-08-17 17:07:41
4690
举报

大家好,我是皮皮。

一、前言

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

他的代码如下:

代码语言:javascript
复制
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有两个,一个中文,一个英文。【月神】这里给了一个更好的思路。

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

代码语言:javascript
复制
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】等人参与学习交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、解决过程
  • 三、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档