注释挺详细了,直接上全部代码,欢迎各位大佬批评指正。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from time import sleep
from lxml import etree
import os
import requests
import csv
# 创建一个无头浏览器对象
chrome_options = Options()
# 设置它为无框模式
chrome_options.add_argument('--headless')
# 如果在windows上运行需要加代码
chrome_options.add_argument('--disable-gpu')
browser = webdriver.Chrome(chrome_options=chrome_options)
# 设置一个10秒的隐式等待
browser.implicitly_wait(10)
# 使用谷歌无头浏览器来加载动态js
def start_get(url,news_type):
browser.get(url)
sleep(1)
for one in range(30):
# 翻到页底
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(1)
# 拿到页面源代码
source = browser.page_source
parse_page(url,source)
# 对新闻列表页面进行解析
def parse_page(url,html):
# 创建etree对象
tree = etree.HTML(html)