我的网络浏览器出现了一个奇怪的问题。我正在尝试使用BeautifulSoup从网站获取数据。
我的代码适用于我尝试过的所有链接的90%,但有一些链接不能完全读取页面。
引起我兴趣的是“1152x864” 在我的浏览器上检查源代码时,我清楚地看到了文字:
<li class="x-block-grid-item">
<h3 style="margin: 0 0 0.35em;font-size: 1em;letter-spacing: 0.05em;line-height: 1">Resolution</h3>
<p class="man">1152x864</p>
</li>
但是当我尝试通过BeautifulSoup获取源代码时,它只显示:
<li class="x-block-grid-item">
<h3 style="margin: 0 0 0.35em;font-size: 1em;letter-spacing: 0.05em;line-height: 1">Resolution</h3>
</li>
这是我的代码:
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = 'https://prosettings.net/counterstrike/fer/'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
containers = page_soup.findAll("li",{"class":"x-block-grid-item"})
cont_res = containers[8].p.text
print("Res: " + cont_res)
当我尝试不同的链接时,例如: my_url ='https://prosettings.net/counterstrike/fallen/' 一切正常。
答案 0 :(得分:0)
我习惯使用BeautifulSoup.text打印出每个标签及其子项的文本,但特别是这些df %>%
mutate(data = map2(data, size,
function(x, y) mutate(x, size = y)))
可能会有一些有趣的事情发生。无论如何,你没有得到正确的汤,所以也许尝试<p>
而不是requests
,然后用urllib
直接挖掘<p>
标签。
bs4
给我所有的课程=&#34; man&#34; site = 'https://prosettings.net/counterstrike/fer/'
r = requests.get(site)
soup = BeautifulSoup(r.content, 'html.parser')
list2 = soup.find_all('p', class_='man')
for item in list2:
if item.find('p'):
print(item.text)
标签&#39;信息:
<p>
它只是解决方案标签。不知道为什么。
答案 1 :(得分:0)
试试这个。它不应该让你失望:
from urllib.request import urlopen
from bs4 import BeautifulSoup
URL = 'https://prosettings.net/counterstrike/fer/'
res = urlopen(URL).read()
soup = BeautifulSoup(res, "lxml")
cont_res = ' '.join([item.find(class_="man").text for item in soup.find_all(class_="x-block-grid-item") if "Resolution" in item.text])
# or using .select()
# cont_res = ' '.join([item.select_one(".man").text for item in soup.select(".x-block-grid-item") if "Resolution" in item.text])
print("Res: " + cont_res)
输出:
Res: 1152x864