当前位置: 首页 > 知识库问答 >
问题:

python - 在使用ChromiumPage中有两个相似的链接,如何监听一个确定的链接?

小牛23180
2024-08-21

刚解决一个问题,又有新的问题,在使用ChromiumPage中如何监听一个确定的链接,两个相似的链接干扰,两个链接都很长,有部分参数不同,每次链接都有加密数据在变,无法固定
api/qt/clist/get?cb=jQuery1123024554575312602211_1724157038962&fid=f62&po=1&pz=50&pn=2&np=1&fltt=2&invt=2&ut=b2884a393a59ad64002292a3e90d46a5&fs=m%3A90+t%3A3&fields=f12%2Cf14%2Cf2%2Cf3%2Cf62%2Cf184%2Cf66%2Cf69%2Cf72%2Cf75%2Cf78%2Cf81%2Cf84%2Cf87%2Cf204%2Cf205%2Cf124%2Cf1%2Cf13
api/qt/clist/get?cb=jQuery1123024554575312602211_1724157038958&pn=1&pz=500&po=1&np=1&fields=f12%2Cf13%2Cf14%2Cf62&fid=f62&fs=m%3A90%2Bt%3A3&ut=b2884a393a59ad64002292a3e90d46a5&_=1724157038966

page = ChromiumPage()
page.listen.start('api/qt/clist/get') 

在翻页过程中有时监听到的是前一个链接,有时是后一个,无法同时抓到两个或者指定的一个,尝试通过参数确定不成功,网上没有找到例子;

import json
import pandas as pd
import numpy as np
import csv
import re
from DrissionPage import ChromiumPage
def ff_em_bkzj():

page = ChromiumPage()
df=pd.DataFrame([])
nn=1
page.listen.start('api/qt/clist/get') 
page.get(url)
res = page.listen.wait()  
while 1:
    time.sleep(3)
    #print(res.url)  # 输出数据包url
    for ii in range(3):
        html=res.response.body
        #print(html)
        pattern = re.compile('\((.*)\)',re.S)
        items = re.findall(pattern,html)  
        hjson = json.loads(items[0])
        #print(hjson)
        df0=pd.DataFrame(hjson["data"]["diff"])
        if df0.shape[1]>8:
            #print(df0)
            df=pd.concat([df,df0])
            break
        else:
            print('   ',ii)
    print(nn,'df',df0.shape)
    page.scroll.to_bottom()
    res = page.listen.wait()  # 等待并获取一个数据包
    #time.sleep(1)
    ele=page.ele('xpath://div[@class="pagerbox"]/a[text()="下一页"]')
    if ele:
        #time.sleep(2)
        ele.click()
        res = page.listen.wait()  # 等待并获取一个数据包
        nn=nn+1
    else:
        break
df=df.dropna(subset=['f2','f3']) #NaN 删去NaN行
print(df)
df.to_csv('ttt.csv', encoding='ansi',index=False)#debug

ff_em_bkzj()

恳请指教,谢谢

共有1个答案

艾璞瑜
2024-08-21

如果能够取得url的话,用“ = ” 号对url进行分割,用正则表达式判断最后一个 = 号之后是否是纯数字,这样应该可以判断是哪个链接

 类似资料:
  • 这是我的一个货车租赁数据库的起始代码。 如何将汽车链接到该位置。例如,CBD的位置有Wicked,Zepplin和Floyd,Penrith有Queen。因此,如果命令行参数具有“打印CBD”,那么它必须显示CBD中可用的货车。 任何帮助将不胜感激。

  • 问题内容: 我有两个完成。我想做以下情形:如果第一个Completable到达onComplete,则继续第二个Completable。最终结果将是第二完成的onComplete。 当我有单个 getUserIdAlreadySavedInDevice() 和Completable login() 时,这就是我的方法: 问题答案: 您正在寻找运营商。 返回一个Completable,它首先运行此C

  • 我有两个完整的。我想做以下场景:如果第一个Completable到达onComplete,继续第二个Completable。最终结果将是完成第二个可完成项。 这就是我在使用单getUserIdAlreadySavedInDevice()和Compltable login()时的做法:

  • 问题内容: 我有两个表的列相似-假设表A的列为LABEL_A,表B的列为LABEL_B。LABEL_A和LABEL_B的数据类型相同。 如何在单个查询中从两个表中选择LABEL?(因此,查询结果包含单个列LABEL,该列包含两个表的LABEL列中的数据)。 编辑:我可以在游标中使用这样的UNION查询吗? 感谢您的回答。 问题答案: 使用: 会更快,但是如果存在重复项,则不会删除重复项。如果要删除

  • 问题内容: 我需要一种将.torrents转换为磁铁链接的方法。想在python中做到这一点。是否有任何已经在执行此操作的库? 问题答案: 您可以使用从BitTorrent中提取的bencode模块来执行此操作。 为了展示一个例子,我从这里下载了Ubuntu的torrent ISO: 然后,您可以像这样在Python中进行解析: 磁力哈希仅从洪流元数据的“ info”部分计算得出,然后在base3

  • 问题内容: 我想创建一个类似于链接的HTML按钮。因此,当您单击按钮时,它将重定向到页面。我希望它尽可能地易于访问。 我也希望这样做,因此URL中没有任何多余的字符或参数。 我该如何实现? 根据到目前为止发布的答案,我目前正在这样做: 但这是在Safari和Internet Explorer中 ,它在URL的末尾添加了问号字符。我需要找到一种不会在URL末尾添加任何字符的解决方案。 还有其他两种解