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