使用多协程和队列,爬取时光网电视剧TOP100的数据(剧名、导演、主演和简介),并用xlsx模块将数据存储下来。
时光网TOP100链接:http://www.mtime.com/top/tv/top100/
#提示:
#1.分析数据存在哪里(打开“检查”工具,刷新页面,查看第0个请求,看【response】)
#2.观察网址规律(多翻几页,看看网址会有什么变化)
#3.获取、解析和提取数据(需涉及知识点:queue、gevent、request、BeautifulSoup、find和find_all)
#4.存储数据(csv本身的编码格式是utf-8,可以往open()里传入参数encoding='utf-8'。这样能避免由编码问题引起的报错。)
#注:在练习的【文件】中,你能找到自己创建的csv文件。将其下载到本地电脑后,请用记事本打开,因为用Excel打开可能会因编码问题出现乱码。
#导包
#请求top100
#1.剧名:mov_con下的px14 c_fff.text 2.导演:mov_con下的 第一个p c_fff.text 3.演员:mov_con下的 第二个p 下的a c_fff.text 数组 4.mov_con下的 mt3.text
#循环上述请求步骤10次,方可请求100条
#拿到了上一步数据,放到一个列表,循环放入csv,关闭
#导入selnuim库,等待渲染完成再爬,数据都在js里,等待插入完成再爬取
from gevent import monkey
monkey.patch_all()
import gevent,requests,openpyxl,time
from gevent.queue import Queue
from bs4 import BeautifulSoup
from selenium import webdriver #从selenium库中调用webdriver模块
driver = webdriver.Chrome() # 设置引擎为Chrome,真实地打开一个Chrome浏览器
work=Queue()#创建队列
csv_list=[]#用来插入xlsx表格的列表