写在前面
有小可爱私信我说,中国票房和艺恩合并了,上篇代码(https://blog.csdn.net/weixin_44690846/article/details/103435069
)无法使用了,所以重新改了一下,这次我们使用selenium来获取相关信息。
selenuim简介
Selenium是一个用于Web应用程序自动化测试工具,简单来说就是让电脑像人一样对网页进行点击等操作。
官方中文文档指路:https://python-selenium-zh.readthedocs.io/zh_CN/latest/
观察网页
网址指路:http://www.endata.com.cn/BoxOffice/BO/Year/index.html
我们需要的数据和上篇博文是一样的,只不过2020年了,我们把时间区间换一下,这次我们获取2015年到2020年,每部电影的名称、详情页url、类型、总票房、国家及地区、上映日期
分布实现
1.导包
当然第一步还是导入我们所需要的包啦~
import os
import time
from selenium import webdriver
from lxml import etree
import pandas as pd
2.提前创建csv表
local_data='D:/Learn'
local_main2=local_data+'/'+'movie2.csv'#设置路径
if not os.path.exists(local_main2):
data = pd.DataFrame(columns=['电影名称','电影详情页','电影类型','电影票房','国家及地区','上映时间'])
data.to_csv(local_main2,index = None,encoding="utf_8_sig")
3.打开所爬取网址
- 为了使电脑的操作符合人的操作,我们使用time包中的time.sleep()让计算机等待几秒后再进行后面的操作
driver.find_element_by_xpath('//nav[@class="box-nav"]/ul/li[2]').click()
表示找到此xpath所在标签,并点击- 如果小可爱们对selenium中如何查找元素不太熟悉,那么可以参考一下前面selenium简介中的中文文档!
driver = webdriver.Chrome() #打开Google浏览器
url = 'http://www.endata.com.cn/BoxOffice/' #中国票房url
driver.get(url) #请求url
time.sleep(2) #等待2秒
driver.find_element_by_xpath('//nav[@class="box-nav"]/ul/li[2]').click() #点击->票房
time.sleep(5)
driver.find_element_by_xpath('//ul[@class="bo-left-nav"]/li[6]').click() #点击->年度票房
time.sleep(