一般情况下,我尝试从此网站获取至少一些标签,并且始终不提供任何标签。我不知道如何解决这个问题。
有一个按钮Tickets,从侧面按下它后还有一个额外的面板,所以我想解析它,我无法理解如何。据我了解,点击后没有立即加载此选项卡,接下来该做什么我不明白。附:刚开始学习它。
# coding: utf-8-sig
import urllib.request
from bs4 import BeautifulSoup
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"}
def get_html(url):
request = urllib.request.Request(url,None,headers)
response = urllib.request.urlopen(request)
return response.read()
def parse(html):
soup = BeautifulSoup(html,"html.parser")
table = soup.find('body', class_='panel-open')
print(table)
def main():
parse(get_html('http://toto-info.co/'))
if __name__ == '__main__':
main()
答案 0 :(得分:0)
那是因为网页http://toto-info.co/的body元素不包含class属性“panel-open”。
您可以通过更改代码中的行来查看body元素包含的内容:
table = soup.find('body')
到
table = soup.find('div', class_='standalone')
现在将打印body元素及其包含的所有元素。
正如您将看到body元素包含非常少的脚本,如果您想让脚本呈现,您将不得不使用其他技术,我建议您进行Google搜索初学者,例如Web-scraping JavaScript page with Python
如果您感兴趣的话,按类选择某个内容的示例是:
<div class="standalone" data-app="" id="app"></div>
但是从这个页面中选择:
{{1}}
但这是关于此页面上没有JavaScript显示的所有标记。