получение только имени тега, а не получение текста с помощью python beautifulsoup - PullRequest
0 голосов
/ 07 января 2019

ниже мой код

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)

PLZ, помогите мне кто-то

1 Ответ

0 голосов
/ 07 января 2019

Страница динамическая.

ВАРИАНТ 1:

Использование Селен

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:

Используйте пакет reports-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>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...