基本思路:
首先用开发者工具找到需要提取数据的标签列
利用xpath定位需要提取数据的列表
然后再逐个提取相应的数据:
保存数据到csv:
利用开发者工具找到下一页按钮所在标签:
利用xpath提取此标签对象并返回:
调用点击事件,并循环上述过程:
最终效果图:
代码:
from selenium import webdriver import time import re class Douyu(object): def __init__(self): # 开始时的url self.start_url = "https://www.douyu.com/directory/all" # 实例化一个Chrome对象 self.driver = webdriver.Chrome() # 用来写csv文件的标题 self.start_csv = True def __del__(self): self.driver.quit() def get_content(self): # 先让程序两秒,保证页面所有内容都可以加载出来 time.sleep(2) item = {} # 获取进入下一页的标签 next_page = self.driver.find_element_by_xpath("//span[text()='下一页']/..") # 获取用于判断是否是最后一页的属性 is_next_url = next_page.get_attribute("aria-disabled") # 获取存储信息的所有li标签的列表 li_list = self.driver.find_elements_by_xpath("//ul[@class='layout-Cover-list']//li") # 提取需要的数据 for li in li_list: item["user-id"] = li.find_element_by_xpath(".//div[@class='DyListCover-userName']").text item["img"] = li.find_element_by_xpath(".//div[@class='DyListCover-imgWrap']//img").get_attribute("src") item['class-name'] = li.find_element_by_xpath(".//span[@class='DyListCover-zone']").text item["click-hot"] = li.find_element_by_xpath(".//span[@class='DyListCover-hot']").text item["click-hot"] = re.sub(r'\n','',item['click-hot']) # 保存数据 self.save_csv(item) # 返回是否有下一页和下一页的点击事件的标签, return next_page,is_next_url def save_csv(self,item): # 将提取存放到csv文件中的内容连接为csv格式文件 str = ','.join([i for i in item.values()]) with open('./douyu.csv','a',encoding='utf-8') as f: if self.start_csv: f.write("用户id,image,所属类,点击热度\n") self.start_csv = False # 将字符串写入csv文件 f.write(str) f.write('\n') print("save success") def run(self): # 启动chrome并定位到相应页面 self.driver.get(self.start_url) while True: # 开始提取数据,并获取下一页的元素 next_page,is_next = self.get_content() if is_next!='false': break # 点击下一页 next_page.click() if __name__=='__main__': douyu_spider = Douyu() douyu_spider.run()
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 发烧女声Méav《美芙的祈祷》发烧女声 [WAV+CUE][820M]
- 雷婷 《我的爱回不来》紫银合金AQCD [WAV+CUE][1G]
- 群星 DTS《天籁之音·唱醉了草原》2CD[WAV分轨][1.6G]
- 魔兽世界wlk毁灭术一键输出宏是什么 wlk毁灭术一键输出宏介绍
- 三国志8重制版无法与武将交流怎么办 无法与武将交流解决方法一览
- 三国志8重制版恶名怎么消除 恶名影响与消除方法介绍
- 模拟之声慢刻CD《柏林之声5》2019[原抓WAV+CUE]
- AlexandraSoumm-Parisestunefte(2024)[24Bit-96kHz]FLAC
- 李嘉《国语转调1》[天王唱片][WAV整轨]
- 不是哥们 这都能跑?网友展示用720显卡跑《黑神话》
- 玩家自制《黑神话:悟空》亢金星君3D动画 现代妆容绝美
- 大佬的审美冲击!《GTA6》环境设计师展示最新作品
- 纪晓君.2001-野火·春风【魔岩】【WAV+CUE】
- 汪峰.2005-怒放的生命【创盟音乐】【WAV+CUE】
- 群星.1995-坠入情网【宝丽金】【WAV+CUE】