Я пытаюсь выполнить WebScrape с библиотекой BeautifulSoup Python3 на https://etherscan.io/ для проекта с открытым исходным кодом.В частности, я хочу получить адрес строки txn , который имеет столбец «Кому» «Создание контракта» (т. Е. Внутренний html).
Возьмем, к примеру, строку в эта ссылка с использованием функции проверки элементов Firefox:
<a href="/address/0x65a0cdb8e79ae3e0c54436362206fd0769335234" title="0x65a0cdb8e79ae3e0c54436362206fd0769335234">Contract Creation</a>
Вот некоторый код:
url = https://etherscan.io/txs?block=8086187
response = requests.get(url, timeout=5)
content = BeautifulSoup(response.content, "html.parser")
page = content.findAll('td', attrs={"span": ""})
page = ''.join(str(page))
if(page.find("Contract Creation") != -1):
## find tx that matches with contract
for i in range(len(page)):
if i+1 != len(page):
if({LINE AT CURRENT PAGE == "Contract Creation"})
tx.append(TXN address); break;
Для этой страницы ожидаемый результат должен быть:
0x48a97150373ca517723db6c39eebcda34719e73a9adb975d5912f21c5a9b4971
У меня проблемы с извлечением конкретной информации.На данный момент я просто проверяю, есть ли на странице создание контракта, а затем пытаюсь найти его.Я мог бы жестко закодировать его и проверить строку, которая говорит
if(page[i[ == "c" and page[i+1] == "o" and page[i+2] == "n"...)
txn.append(page(i-someNumber:page[i-anotherNumber])
, но это неэффективно.
Еще лучше, было бы просто получить адреса контракта, который находится в заголовке,Если я смогу получить конкретную строку <a href>
, то я смогу получить адрес контракта: 0x65A0cDb8e79Ae3e0c54436362206fd0769335234