如何从中提取数据upbit.com网站韦西

2024-04-19 01:48:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在重新整理一个问题,我创建了几个月前,我失去了访问我的帐户,但碰巧碰上这个问题,而我正在四处寻找。 我原来的帖子是在这里Converting JavaScript back to readable HTML in Python script。我遇到的问题是,当你试图从网站上删除它时,我没有从网站上获得完整的HTML标记。Upbit.com网站是由cloudflare保护的,所以我在python中使用了一个名为cfscrape的模块来绕过它。cloudflare模块可以工作,当我在变量中输出它时,它会给我一个部分html标记,但它根本没有得到嵌套的html标记。我试图从中提取的标记从一个名为“root”的id的div标记开始。在控制台中,它只显示div的open和close标记之间带有<;…>;的div标记。我仍然使用与以前相同的代码,因此没有任何更改。我现在最好的猜测是尝试提取cookie并将其传递到python curl请求中?但我完全不知道如何做到这一点,因此我为什么要伸手去堆栈。我也完全愿意使用其他编程语言。你知道吗

import cfscrape

scraper = cfscrape.create_scraper(delay=15)  # returns a CloudflareScraper instance
# Or: scraper = cfscrape.CloudflareScraper()  # CloudflareScraper inherits from requests.Session
print scraper.get("https://upbit.com/service_center/notice").content  # => "<!DOCTYPE html><html><head>..."

编辑1:这是我试图提取的数据。我要找的资料在一张桌子里。我想检索这个表中的每个标签,因为它包含网页上显示的内容。 enter image description here

编辑2:好的,每次使用Python中的标准“request”库时,我都知道需要传递哪些数据来绕过cloudflare身份验证。我现在面临的问题是,即使这样,仍然没有得到嵌套标记。当我发出请求时,它只得到顶级的“root”标记,而不是div标记内部的标记(如我的图片所示)。我从来没有见过这样的事情,通常当你做一个get请求时,它会返回网页上的所有html内容。有人知道为什么会这样吗???我确信他们在某种程度上用JavaScript隐藏了信息,但我对JavaScript的理解还不够,不知道当有人试图混淆它时应该寻找什么。你知道吗

import cfscrape
import requests
import time
request = "GET / HTTP/1.1\r\n"

scraper = cfscrape.create_scraper(delay=15)

cookie_value, user_agent = cfscrape.get_cookie_string("https://upbit.com/service_center/notice", user_agent='Mozilla/5.0')
request += "Cookie: %s\r\nUser-Agent: %s\r\n" % (cookie_value, user_agent)

#print request

temp = cookie_value.split('; __cfduid=')
cf_clearance = temp[0].split('cf_clearance=')
#print temp[1]
#print cf_clearance[1]
headers = {'User-Agent': 'Mozilla/5.0'}
cookies = {'cf_clearance': cf_clearance[1], '__cfduid':temp[1]}

r = requests.get("https://upbit.com/service_center/notice", cookies=cookies, headers=headers).content
print r

Tags: 标记importdivcomgetcookierequesthtml