[英]Selenium scrapping probleme on python nothing append
我试图废弃这个页面和所有的销售结果。
但是没有附加任何东西,代码什么也没给我。 我想在数据框或类似的东西上有卖家+买家+价格和日期
最好的
https://www.fxhash.xyz/marketplace/generation/15063
driver = webdriver.Chrome(ChromeDriverManager().install()) #webdriver.Firefox()
driver.get("https://www.fxhash.xyz/marketplace/generative/15063")
# que la page charge avant de passer à la suite
time.sleep(5)
#driver.find_element_by_id('activity').click()
driver.find_element(By.XPATH, '//div[contains(text(),"activity")]').click()
*#Find the acticity page*
activities = driver.find_elements(By.XPATH, '//article[@class="Action_container__uURkZ Action_is_link__7x4O4"]')
time.sleep(5)
*#grab the element*
elements_list = driver.find_elements_by_xpath("//div[contains(@class, 'Activity_container__E7eID Activity_activity__kwRfH')]/a[contains(@class, 'Action_container__uURkZ Action_is_link__7x4O4')]")
for element in elements_list:
driver.execute_script("arguments[0].scrollIntoView(true);", element)
print(element.get_attribute("href"))
您可以从API GraphQL抓取所有数据。
这里有一个例子:
import requests
def do_request(skip):
json_data = {
'operationName': 'GenTokActiveListings',
'variables': {
'filters': {},
'id': 15063,
'skip': skip,
'take': 20,
'sort': {
'listingCreatedAt': 'DESC',
},
},
'query': 'query GenTokActiveListings($id: Float!, $filters: ObjktFilter, $sort: ObjktsSortInput, $skip: Int, $take: Int) { generativeToken(id: $id) { id activeListedObjkts(filters: $filters, sort: $sort, skip: $skip, take: $take) { id version name slug duplicate metadata activeListing { id version price issuer { id name flag avatarUri __typename } __typename } owner { id name flag avatarUri __typename } __typename } __typename }}',
}
print("Getting first " + str(next_elements + 20) + " elements!!!")
response = requests.post('https://api.fxhash.xyz/graphql', json=json_data)
return response.json()
next_elements = 0
for i in range(0, 100):
data = do_request(next_elements)
array = data["data"]["generativeToken"]["activeListedObjkts"]
if not array:
print("Finish array is empty!")
break
for element in array:
print("Name: " + element["name"])
print("Owner name: " + str(element["owner"]["name"]))
print("Owner id: " + str(element["owner"]["id"]))
print("Price: " + str(element["activeListing"]["price"]))
next_elements += 20
输出:
Getting first 20 elements!!!
Name: A Bugged Forest #491
Owner name: DeD_X
Owner id: tz1bBgjBboqksQDxTpADTe22otokenRajpmq
Price: 1550000000
Name: A Bugged Forest #525
Owner name: None
Owner id: tz1hzHjsa9sExwjRVFPxJnuVak2qpKmKrame
Price: 1600000000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.