派森

V1

2022/10/07阅读:42主题:默认主题

python 豆瓣电影 selenium 版本

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

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

开发环境:PyCharm

版本:python 3.9.5

有言在先

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

前言

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

效果图

电影数据
电影数据

关键代码

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,操作更方便哦

分类:

后端

标签:

Python

作者介绍

派森
V1