csv写入注意:以猫眼为例
from selenium import webdriver
import csv
# 创建chrome设置对象 程序没有问题在去设置 无界面模式
options = webdriver.ChromeOptions()
# 设置无界面功能 --headless 浏览器无界面 --xxxx
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get('https://maoyan.com/board/4')
def get_one_page():
# 找到这一页的dd标签 千万不要忘记写dd
dd_lst = driver.find_elements_by_xpath('//*[@id="app"]/div/div/div[1]/dl/dd')
for dd in dd_lst:
# text属性 获取当前dd节点的子节点以及后代节点的文本内容
# 视情况而分析 验证我们打印的内容有什么规律吗?如果有 就进一步操作
# print(dd.text)
# print('*'*80)
one_film_info_lst = dd.text.split('\n')
item = {}
try:
item['rank'] = one_film_info_lst[0].strip()
item['name'] = one_film_info_lst[1].strip()
item['actor'] = one_film_info_lst[2].strip()
item['time'] = one_film_info_lst[3].strip()
item['score'] = one_film_info_lst[4].strip()
except Exception as e:
# pass
# lst.append(e)
pass
while True:
get_one_page()
# if 不是最后一页:
# driver.find_element_by_link_text('下一页').click()
# else:
# driver.quit()
# break
try:
# 找不到最后一页 就会抛出异常 此时就证明是最后一页了
driver.find_element_by_link_text('下一页').click()
except Exception as e:
driver.quit()
break
csv写入
这里注意一点:在except这里不要让列表添加报错的e,否则会报错,报错了几次就是因为这个原因