【问题标题】:How to grab data from inputDataGroup from a url如何从 url 从 inputDataGroup 中获取数据
【发布时间】:2022-08-20 19:11:34
【问题描述】:

我正在尝试从 url 中获取一些数据。我的代码不起作用,因为它会产生错误。

import requests
from bs4 import BeautifulSoup as bs

headers = {\"User-Agent\": \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0\"}
r = requests.get(\'https://bscscan.com/tx/0x6cf01dda40e854b47117bb51c8d2148c6ae851e7d79d792867d1fa66d5ba6bad\', headers = {\'User-Agent\':\'Mozilla/5.0\'})
soup = bs(r.content, \'lxml\')


test = soup.find(\'div\', class_=\'rawtab\').get_text()
print (test)

想要的输出:

Function: lockTokens(address _token, address _withdrawer, uint256 _amount, uint256 _unlockTimestamp) ***

MethodID: 0x7d533c1e
[0]:  000000000000000000000000109fddb8d49ae139449cb061883b685827b23937
[1]:  000000000000000000000000d824567e3821e99e90930a84d3e320a0fdb6f867
[2]:  00000000000000000000000000000000000000000000a768da96dc82245ed943
[3]:  00000000000000000000000000000000000000000000000000000000628d8187

电流输出:

AttributeError: \'NoneType\' object has no attribute \'get_text\'

    标签: python python-3.x web-scraping beautifulsoup python-requests


    【解决方案1】:

    你接近你的目标,但必须切换属性类型。

    <div data-target-group="inputDataGroup" id="rawtab">
    

    &lt;div&gt; 不包含class,它是您应该选择的id,更具体的是它的textarea

    soup.find('div', id='rawtab').textarea.text
    

    css selector:

    soup.select_one('div#rawtab textarea').text
    

    例子

    import requests
    from bs4 import BeautifulSoup as bs
    
    headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0"}
    r = requests.get('https://bscscan.com/tx/0x6cf01dda40e854b47117bb51c8d2148c6ae851e7d79d792867d1fa66d5ba6bad', headers = {'User-Agent':'Mozilla/5.0'})
    soup = bs(r.content, 'lxml')
    
    
    test = soup.select_one('div#rawtab textarea').text
    print (test)
    

    输出

    Function: lockTokens(address _token, address _withdrawer, uint256 _amount, uint256 _unlockTimestamp) ***
    
    MethodID: 0x7d533c1e
    [0]:  000000000000000000000000109fddb8d49ae139449cb061883b685827b23937
    [1]:  000000000000000000000000d824567e3821e99e90930a84d3e320a0fdb6f867
    [2]:  00000000000000000000000000000000000000000000a768da96dc82245ed943
    [3]:  00000000000000000000000000000000000000000000000000000000628d8187
    

    获取项目作为列表:

    textArea = soup.select_one('div#rawtab textarea').text.split('\r\n')
    data = [n.split()[-1] for n in textArea if ']:' in n] 
    

    输出data(您可以按索引选择):

    ['000000000000000000000000109fddb8d49ae139449cb061883b685827b23937',
     '000000000000000000000000d824567e3821e99e90930a84d3e320a0fdb6f867',
     '00000000000000000000000000000000000000000000a768da96dc82245ed943',
     '00000000000000000000000000000000000000000000000000000000628d8187']
    

    【讨论】:

      猜你喜欢
      • 2011-02-18
      • 1970-01-01
      • 2019-03-17
      • 2016-07-20
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多