我是总结之前学的一些知识点,然后进行一些简单的实战演示。
这次的知识点是基于selenium库的一个自动化浏览器的爬取过程。
还是豆瓣电影这个例子。
1.导入相关的库
from lxml import etree
import csv
from selenium import webdriver
from time import sleep
2.传入浏览器驱动程序(我的是edge),然后进行数据解析
#实例化一个浏览器对象
bro = webdriver.Edge(executable_path='.\MicrosoftWebDriver.exe')
#发起请求
bro.get('https://movie.douban.com/top250')
#获取页面源码数据
page_text = bro.page_source
tree = etree.HTML(page_text)
li_list = tree.xpath('//*[@id="content"]/div/div[1]/ol/li')
#print(li_list) 无问题
3.这一步和之前一样,数据保存为csv文件
for li in li_list:
name = li.xpath('./div/div[2]/div[1]/a/span[1]/text()')[0]
point = li.xpath('./div/div[2]/div[2]/div/span[2]/text()')[0]
#print(name,point) #无问题
film_top_dic = {'name':name,'point':point}
#print(film_top_dic)
csvwriter.writerow(film_top_dic.values())
fp.close()
4.最后需要关闭一下浏览器
sleep(4)
#关闭浏览器
bro.quit()
5.完整代码
from lxml import etree
import csv
from selenium import webdriver
from time import sleep
#实例化一个浏览器对象
bro = webdriver.Edge(executable_path='.\MicrosoftWebDriver.exe')
#发起请求
bro.get('https://movie.douban.com/top250')
#获取页面源码数据
page_text = bro.page_source
tree = etree.HTML(page_text)
li_list = tree.xpath('//*[@id="content"]/div/div[1]/ol/li')
#print(li_list) 无问题
fp = open('datass.csv','w',encoding='utf-8')
csvwriter = csv.writer(fp)
for li in li_list:
name = li.xpath('./div/div[2]/div[1]/a/span[1]/text()')[0]
point = li.xpath('./div/div[2]/div[2]/div/span[2]/text()')[0]
#print(name,point) #无问题
film_top_dic = {'name':name,'point':point}
#print(film_top_dic)
csvwriter.writerow(film_top_dic.values())
fp.close()
sleep(4)
#关闭浏览器
bro.quit()
6.总结
仅仅记录了selenium的一个知识点,后面继续补充。。。