整个过程为登录一个网站,然后从网站中爬取结构化的信息,写入csv文件的过程。
没有写明网址,实际上哪个网站不重要,重要的是此过程中使用的方法,它们都是想通的,理解整个过程,然后灵活使用即可。
文中有使用三种方式来解析网页,以下为整个过程代码(使用的是python3.7):
#!/usr/bin/python
# -*- coding: utf-8 -*-
import csv
import re
import time
from selenium import webdriver
from bs4 import BeautifulSoup
from lxml import etree
def login(driver, url):
‘’‘
登录网站
“”“
driver.get(url) # 进入网站登录页面
driver.implicitly_wait(30) # 智能等待元素加载完成
# 需要特别说明的是:
# 隐性等待对整个driver的周期都起作用,所以只要设置一次即可,
# 我曾看到有人把隐性等待当成了sleep在用,走哪儿都来一下…
# (没发现这句话前,我也是这莫干的...)
time.sleep(2)
driver.find_element_by_xpath('//*[@id="dl"]/input[1]').send_keys('你的用户名')
driver.find_element_by_id('password').click()
# 因为密码框中有js的存在,不能直接输入密码,所以需要通过执行js代码来输入密码
driver.execute_script('document.getElementById("password").value="你的密码"')
# 或者通过jquery的方式:
# driver.execute_script("$('#password').val('你的密码')")
time.sleep(1.5)
driver.find_element_by_xpath('//*[@id="dl"]/input[4]').submit()
driver.find_element_by_xpath('//*[@id="apDiv33"]/a').click