当前位置:   article > 正文

python爬虫 使用selenium抓取 猫眼电影网站排名页 电影信息_selenium猫眼电影网爬取

selenium猫眼电影网爬取
from selenium import webdriver
import time

#设置无头模式
options = webdriver.ChromeOptions()
optins.add_argument('--headless')

browser = webdriver.Chrome(options=options)	#打开chrome
browser.get('http://maoyan.com/board/4')	#进入主页,会等待页面加载完

#获取一个页面的电影信息
def get_one_page()
	 #通过xpath表达式获取电影信息节点对象列表
	dd_list = browser.find_elements_by_xpath('/html/body/div[4]/div/div/div[1]/dl/dd')	#xpath表达式直接通过在电影节点信息处右键查看元素 -- 点到包含该页所有电影子节点(dd)的大节点(dl)右键复制 --xpath表达式获取,再在最后添加/dd定位到所有的电影节点
	
	#创建容器用于存放抓下来的数据
	item = {}
	for dd in dd_list:
		#print(dd.text)	打印一下查看以上步骤是否成功,并查看数据格式:抓到了序号、电影名称,主演、上映时间等信息,每个信息间都有\n换行
		#获取电影信息,并将获取的信息放到容器中
		item_list = dd.text.split('\n')
		item['number'] = item_list[0]
		item['name'] = item_list[1]
		item['star'] = item_list[2]
		item['time'] = item_list[3]
		item['score'] = item_list[4]
		print(item)

while True:
	get_one_page()
	try:
		#通过selenium点击下一页标签进入下一页准备再次循环抓取数据
		#find_element_by_link_text()通过文本内容查找超链接,然后使用click()点击进入下一页
		browser.find_element_by_link_text('下一页').click()	

		#给页面元素加载预留时间,因为click()不像get()一样会等,当网速不好等情况,页面还没加载完,click()就会出发进入下一页,这样就抓取不全
		time.sleep(0.5)
	#当循环抓取到下一页,找不到‘下一页’这个节点,会抛异常,所以需要捕捉掉
	except Exception as e:
		print('抓取结束!')
		browser.quit()
		break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/991451
推荐阅读
相关标签
  

闽ICP备14008679号