仅获取标签名称,而不使用python beautifulsoup获取文本

时间:2019-01-07 10:28:36

标签: python beautifulsoup

下面是我的代码

from bs4 import BeautifulSoup
import requests
headers = {"User-Agents":"googleBoat"}
r = requests.get('https://www.iiaonline.in/memberdetail.aspx?memid=11520',headers=headers)
soup = BeautifulSoup(r.text,'lxml')

company_name = soup.find('span',{"id":"unit"})
print(company_name.text)

请帮助我某人

1 个答案:

答案 0 :(得分:1)

页面是动态的。

选项1:

使用Selenium

import pandas as pd
import bs4 
from selenium import webdriver 

url = 'https://www.iiaonline.in/memberdetail.aspx?memid=11520'

browser = webdriver.Chrome('C:\chromedriver_win32\chromedriver.exe')
browser.get(url)

r = browser.page_source

soup = BeautifulSoup(r,'html.parser')

company_name = soup.find('span',{"id":"unit"})
print(company_name.text)

browser.close()

输出:

print(company_name.text)
Anagram Development & Farmer Producer Co. Ltd.

选项2:

使用软件包requests-html 看来它可以捕获JavaScript渲染的一些文本,但是我从未使用过它,因为它与我经常使用的jupyter Notebooks和Spyder冲突,所以我会出错(并且过去使用Selenium很好) 。因此,您可以自己尝试一下,但是下面是文档中的示例。

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('http://python-requests.org/')

r.html.render()

r.html.search('Python 2 will retire in only {months} months!')['months']

输出:

'<time>25</time>'