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

时间:2019-04-04 13:53:57

标签: javascript python html web-scraping

我正在重新讨论几个月前创建的一个问题,我无法访问我的帐户,但是在四处搜寻时偶然发现了这个问题。 我的原始帖子在Converting JavaScript back to readable HTML in Python script上。我遇到的问题是,当您尝试对网页进行抓取时,我没有从网站获得完整的HTML标记。 Upbit.com受cloudflare保护,所以我在python中使用一个模块绕过,称为cfscrape。当我将它输出到变量中时,cloudflare模块可以正常工作,并为我提供了部分html标记,但它根本没有获取嵌套的HTML标记。我尝试从中提取的标签始于div标签,其ID为“ root”。在控制台中,它仅显示该div标签,并且在该div的打开和关闭标签之间带有<...>。我仍然使用与以前相同的代码,因此没有任何更改。我现在最好的猜测是尝试提取cookie并将其传递给python curl请求?但是我完全不确定如何执行此操作,因此不确定为什么要接触Stack。我也完全愿意使用其他编程语言。

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中的标准“请求”库都需要传递哪些数据以绕过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

0 个答案:

没有答案