使用 python 抓取豆瓣电影 selenium 版本

关键词:python 、 selenium 、 requests模块 、 BeautifulSoup模块 、 pandas模块。

使用 python 抓取豆瓣电影 selenium 版本

关键词:python 、 selenium 、 requests模块 、 BeautifulSoup模块 、 pandas模块

开发环境:PyCharm

版本:python 3.9.5

有言在先

!!!仅供学习,请勿高频率抓取网站内容,以免造成目标站点瘫痪,如不遵守与作者无关

前言

国庆前夕,老板扔了一份5000部的电影名称表格过来,要求在8号上班前整理完电影对应的图片、评分、上应国家、导演、演员、宣传短视频等。我细想了一下,按1部电影2分钟进行收集,5000部不吃不喝也得7天,重点是处理完,手也就残废了,单身20多年的我,怎么可以让手残废呢,经过3分钟的思考后,我决定用只要是人都会的 python 进行编写代码,让机器自动进行收集。经过1分钟的编码与调试,1小时后,5000部电影数据分毫不差摆在我眼前,可以开开心心出去玩耍了…

效果图

使用 python 抓取豆瓣电影 selenium 版本

电影数据

关键代码

headers = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" }

options = webdriver.ChromeOptions()
# 防止被识别为自动化程序
options.add_argument('--disable-blink-features=AutomationControlled')
# 使用 chromedriver 插件进行初始化页面
request_url = db_url.format(**{"movieName":videoName})
driver.get(request_url)
# 使用 BeautifulSoup 进行节点分析
soup_detail = BeautifulSoup(driver_details.page_source, "lxml")
# 获取演员信息
for item in soup_detail.select('span.actor > span.attrs a'):
  if str(item.text).find('更多') == -1:
      stars += item.text + '/'
      
# 影片类型
for item in driver_details.find_elements_by_xpath('//div[@id="info"]/span[@property="v:genre"]'):
    type += item.text + '/'

# 上映国家
upCountry = soup_detail.find('span',text='制片国家/地区:').next_sibling.strip()

# 电影评分
ratingNum = soup_detail.select_one('strong.rating_num').text

# 下载图片
try:
    downloadImg = requests.get(fileUrl, headers=headers)
    with open(rootImg + '\\' + fileName,'wb') as f:
        f.write(downloadImg.content)
except Exception as e:
    print(e)    

关联阅读

  • 图片压缩

完整代码

链接: https://pan.baidu.com/s/1qqajwOGw151XoESGTs8GsQ 提取码: xma8 复制这段内容后打开百度网盘手机App,操作更方便哦

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/5714.html

(0)
上一篇 2022-12-14 12:57
下一篇 2022-12-14 12:57

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信