我确实有一个非常简单的问题-为什么我没有输出?这是站点:https://riven.market/list/PC/Veiled。我以为问题是类名中的空格,但事实证明它是自然的,不应引起任何问题。如果您有任何疑问,请在评论中告诉我
import requests
from bs4 import BeautifulSoup
r = requests.get("https://riven.market/list/PC/Veiled")
c = r.content
soup = BeautifulSoup(c, "html.parser")
all = soup.find_all("div", {"class":"riven-list" })
for item in all:
print("Name" + item.find("div", {"class": "attribute weapon"}).text.replace("\n", "").replace(" ", ""))
答案 0 :(得分:2)
这是我的解决方法,即查找查询将请求发送到的实际URL。您可以通过rightclick
-> inspect element
-> network
-> Find the get request
import requests
from bs4 import BeautifulSoup
# instead of sending to this
main = requests.get("https://riven.market/list/PC/Veiled")
ajax_url = "https://riven.market/_modules/riven/showrivens.php?baseurl=Lw==&platform=PC&limit=25&recency=-1&veiled=true&onlinefirst=true&polarity=all&rank=all&mastery=16&weapon=Any&stats=Any&neg=all&price=99999&rerolls=-1&sort=time&direction=ASC&page=1&time=1565851905857"
re = requests.get(ajax_url)
c = re.content
soup = BeautifulSoup(c, "html.parser")
all_divs = soup.find_all("div", class_ ="attribute weapon" )
for item in all_divs:
print(item.text)
输出
Pistol Riven Mod
new
Pistol Riven Mod
> 1 day
Pistol Riven Mod
> 1 day
Pistol Riven Mod
new
Pistol Riven Mod
new
Pistol Riven Mod
> 1 day
Pistol Riven Mod
> 1 day
Pistol Riven Mod
> 1 day
Melee Riven Mod
> 1 day
Shotgun Riven Mod
> 1 day
Pistol Riven Mod
> 1 day
Pistol Riven Mod
> 1 day
Pistol Riven Mod
> 1 week
Melee Riven Mod
> 1 week
Rifle Riven Mod
> 1 week
Shotgun Riven Mod
> 1 week
Pistol Riven Mod
> 1 week
Pistol Riven Mod
> 1 week
Pistol Riven Mod
> 1 week
Pistol Riven Mod
> 1 week
Rifle Riven Mod
> 1 week
Rifle Riven Mod
> 1 week
Melee Riven Mod
> 1 week
Shotgun Riven Mod
> 1 week
Rifle Riven Mod
> 1 week
答案 1 :(得分:-1)
不确定所要输出的是什么,但是您需要对请求url进行一些修改并添加查询参数:
import requests
from bs4 import BeautifulSoup
url = 'https://riven.market/_modules/riven/showrivens.php'
payload = {
'baseurl': 'Lw==',
'platform': 'PC',
'limit': '25',
'recency': '-1',
'veiled': 'true',
'onlinefirst': 'true',
'polarity': 'all',
'rank': 'all',
'mastery': '16',
'weapon': 'Any',
'stats': 'Any',
'neg': 'all',
'price': '99999',
'rerolls': '-1',
'sort': 'time',
'direction': 'ASC',
'page': '1',
'time': '1565851478713'}
r = requests.get(url, params=payload)
c = r.content
soup = BeautifulSoup(c, "html.parser")
all_divs = soup.find_all("div", {"class":"riven " })
for item in all_divs:
print("Name" + item.find("div", {"class": "attribute weapon"}).text.replace("\n", "").replace(" ", ""))
输出:
newtolRivenMod
>1daylRivenMod
>1daylRivenMod
newtolRivenMod
newtolRivenMod
>1daylRivenMod
>1daylRivenMod
>1daylRivenMod
>1dayRivenMod
>1dayunRivenMod
>1daylRivenMod
>1daylRivenMod
>1weekRivenMod
>1weekivenMod
>1weekivenMod
>1weeknRivenMod
>1weekRivenMod
>1weekRivenMod
>1weekRivenMod
>1weekRivenMod
>1weekivenMod
>1weekivenMod
>1weekivenMod
>1weeknRivenMod
>1weekivenMod