ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python——selenium爬取斗鱼房间信息

2019-04-10 12:44:23  阅读:235  来源: 互联网

标签:content Python driver self selenium 爬取 item class contents


 1 from selenium import webdriver
 2 import os
 3 import json
 4 import time
 5 
 6 
 7 class Douyu:
 8     def __init__(self):
 9         # 1.发送首页的请求
10         self.driver = webdriver.Chrome('../chromedriver.exe')
11         self.driver.get('https://www.douyu.com/g_yz')
12 
13     # 获取页面内容
14     def get_content(self):
15         time.sleep(3)
16         li_list = self.driver.find_elements_by_xpath("//*[@class='layout-Cover-list']/li[@class='layout-Cover-item']")
17         length = len(li_list)
18         contents = []
19 
20         # 遍历房间列表
21         for i in range(length):
22             item = {}
23             item['主播'] = self.driver.find_elements_by_xpath('//h2[@class="DyListCover-user"]')[i].text
24             item['房间名'] = self.driver.find_elements_by_xpath('//h3[@class="DyListCover-intro"]')[i].get_attribute(
25                 'title')
26             item['热度'] = self.driver.find_elements_by_xpath('//span[@class="DyListCover-hot"]')[i].text
27             item['封面'] = self.driver.find_elements_by_class_name('DyImg-content')[i].get_attribute(
28                 'src')
29             contents.append(item)
30         return contents
31 
32     # 保存数据到本地
33     def save_content(self, contents):
34         with open('douyu.json', 'a',encoding='utf-8') as f:
35             for content in contents:
36                 json.dump(content, f, ensure_ascii=False, indent=2)
37                 f.write(os.linesep)
38 
39     def run(self):
40         # 1.发送首页的请求:初始化时已经发送请求
41         # 2.获取第一页的数据
42         contents = self.get_content()
43         self.save_content(contents)
44 
45         # 3.循环:点击下一页按钮,只要没有下一页的按钮
46         while self.driver.find_elements_by_class_name('dy-Pagination-item-custom')[1]:
47             # 点击下一页的按钮
48             self.driver.find_elements_by_class_name('dy-Pagination-item-custom')[1].click()
49             # 4.继续获取下一页的内容
50             contents = self.get_content()
51             # 4.保存下一页保存内容
52             self.save_content(contents)
53 
54 
55 if __name__ == '__main__':
56     douyu = Douyu()
57     douyu.run()

 

标签:content,Python,driver,self,selenium,爬取,item,class,contents
来源: https://www.cnblogs.com/crazyechoaoo/p/10682715.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有