lilili07 2022-06-05 15:43 采纳率: 74.1%
浏览 56
已结题

python selenuim 爬取多页数据

爬虫需要获取多页数据时,网页的url不会刷新时怎么办

# -*- coding:utf-8 -*-
from selenium.webdriver.common.by import By
import re
import lxml.html
import matplotlib.pyplot as plt
from selenium import webdriver
import pandas as pd
import time
from selenium import webdriver

driver = webdriver.Chrome()  # 创建driver对象
driver.get()  # 打开页面
time.sleep(2)
a = driver.find_element(
    By.XPATH, '//a[@class="hy-nav-link hy-nav-link-ext clickstat"]')
a.click()

time.sleep(2)
b = driver.find_element(By.XPATH, '//li[@data-gid="1"]')
b.click()
time.sleep(2)
driver.switch_to.window(driver.window_handles[-1])  # 读取新页面
html = driver.page_source
xp = lxml.html.fromstring(html)  # lxml对象
units = xp.xpath('//li[@class="game-live-item"]')
df = pd.DataFrame()  # 没有text()
for u in units:
    t = {}
    t['标题'] = u.xpath('./a/@title')[0]
    t['主播'] = u.xpath('./span/span/i[@class="nick"]')[0].xpath("string()")
    t['人气'] = u.xpath('./span/span[2]/i[@class="js-num"]/text()')[0]
    df0 = pd.DataFrame([t])
    df = pd.concat([df, df0], ignore_index=True)
    if len(df)>100:
        break

print(df)
df['人气'] = df['人气'].apply(lambda x:float(x[:-1])*10000 if "万" in x else float(x))
df.to_excel(r'D:\a62.xlsx',index=False)
df = pd.read_excel(r'D:\a62.xlsx')
plt.figure(figsize=(12,8),dpi=150)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.bar(x='主播',height='人气',data=df)
plt.xticks(rotation=90,font={'size':6})
plt.yticks(font={'size': 8})
plt.gca().yaxis.get_major_formatter().set_scientific(False)
plt.tight_layout()
plt.show()


  • 写回答

2条回答 默认 最新

  • CSDN专家-黄老师 2022-06-05 16:07
    关注

    网页不刷新应该是翻页是通过ajax获取后端数据的,你看看网页是怎样触发ajax请求的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月5日

悬赏问题

  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。