Chainguys 2021-07-25 11:15 采纳率: 93.6%
浏览 34
已结题

为什么names只有最后一页的内容,循环是哪里出问题了?

from selenium import webdriver
from lxml import etree
from bs4 import BeautifulSoup
import time
import pandas as pd

urls = []
for i in range(1, 4):
    if i == 1:
        url = "https://www.coinbase.com/price/s/listed"
        urls.append(url)

    else:
        url = "https://www.coinbase.com/price/s/listed" + f"?page={i}"
        urls.append(url)
print(urls)

for url in urls:
    wd = webdriver.Chrome()
    wd.get(url)

    time.sleep(30)
    resp =wd.page_source
    html = BeautifulSoup(resp,"lxml")
    tr = html.find_all("tr",class_="AssetTableRowDense__Row-sc-14h1499-1 lfkMjy")
    print(len(tr))
    names =[]
    for i in tr:
        name1 = i.find("span",class_="TextElement__Spacer-hxkcw5-0 cicsNy Header__StyledHeader-sc-1xiyexz-0 kwgTEs AssetTableRowDense__StyledHeader-sc-14h1499-14 AssetTableRowDense__StyledHeaderDark-sc-14h1499-17 cWTMKR").text
        name2 = i.find("span",class_="TextElement__Spacer-hxkcw5-0 cicsNy Header__StyledHeader-sc-1xiyexz-0 bjBkPh AssetTableRowDense__StyledHeader-sc-14h1499-14 AssetTableRowDense__StyledHeaderLight-sc-14h1499-15 AssetTableRowDense__TickerText-sc-14h1499-16 cdqGcC").text
        names.append([name1,name2])

ns=pd.DataFrame(names)
date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
path = "/Users/paul/jpn traffic/coinbase/coinbase"
ns.to_csv(path+date+date+'.csv',index=None)

我的本意是,抓取urls(一共三个url)每一页的若干数据,但是输出到csv后查看,发现只有最后一页数据。
那请问我写的循环是哪里出错了?

注:两个print是检验过程的,一个检验url,一个检验每页要抓的元素,都没有问题,返回如下:

['https://www.coinbase.com/price/s/listed', 'https://www.coinbase.com/price/s/listed?page=2', 'https://www.coinbase.com/price/s/listed?page=3']
26
30
16

  • 写回答

2条回答 默认 最新

  • Chainguys 2021-07-25 14:03
    关注

    找到问题了 names应该放到循环外

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

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 修改了问题 7月25日
  • 修改了问题 7月25日
  • 展开全部

悬赏问题

  • ¥20 matlab计算中误差
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊