python爬取数据怎样实现翻页_python爬⾍利⽤selenium实现
⾃动翻页爬取某鱼。。。
基本思路:
⾸先⽤开发者⼯具到需要提取数据的标签列
利⽤xpath定位需要提取数据的列表
然后再逐个提取相应的数据:
保存数据到csv:
利⽤开发者⼯具到下⼀页按钮所在标签:
利⽤xpath提取此标签对象并返回:
调⽤点击事件,并循环上述过程:
最终效果图:
代码:
from selenium import webdriver
import time
import re
class Douyu(object):
def __init__(self):
# 开始时的url
self.start_url = "www.douyu/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 = _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.start_url)
while True:
# 开始提取数据,并获取下⼀页的元素
next_page,is_next = _content()selenium怎么使用
if is_next!='false':
break
# 点击下⼀页
next_page.click()
if __name__=='__main__':
douyu_spider = Douyu()
douyu_spider.run()
到此这篇关于python爬⾍利⽤selenium实现⾃动翻页爬取某鱼数据的思路详解的⽂章就介绍到这了,更多相关python爬⾍实现⾃动翻页爬取某鱼数据内容请搜索脚本之家以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持脚本之家!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论