from selenium import webdriver
import time#设置无头模式
options = webdriver.ChromeOptions()
optins.add_argument('--headless')browser = webdriver.Chrome(options=options) #打开chrome
('') #进入主页,会等待页面加载完#获取一个页面的电影信息
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:#) 打印一下查看以上步骤是否成功,并查看数据格式:抓到了序号、电影名称,主演、上映时间等信息,每个信息间都有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
本文发布于:2024-01-31 03:10:10,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664181324908.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |