захват содержимого внутри содержимого HTML с помощью Python - PullRequest
0 голосов
/ 05 июня 2018

Китайский сайт здесь в основном описывает информацию одной компании.Поскольку существует много страниц с похожим содержимым, я решил изучить сканер данных на Python.

Базовый код

import requests
from bs4 import BeautifulSoup
page = requests.get('http://182.148.109.184/enterprise- 
info!getCompanyInfo.action?companyid=1000356')

soup = BeautifulSoup(page.text, 'html.parser')
source_content = soup.find(class_='rightSide').find(class_='content register').find(class_='formestyle')

Информация, которую я хочу собрать

Фигура была захвачена на странице элемента Chrome Inspect.

enter image description here

Возможно, китайский здесь не дружелюбный, я создал здесь пример для лучшей иллюстрации.

<th> the variable name </th> => For example, "company name", "company location"
<td> the target data I want to save </td>

Мой вопрос

Исходя из моего основного кода, source_content не содержит никакой информации внутри.Выходной файл был показан следующим образом:

enter image description here

Сравнивая фиг.1, 2, мы видим, что информация о долготе и широте исчезла.

Как получить эти данные с помощью Python?Любой совет будет оценен

1 Ответ

0 голосов
/ 05 июня 2018

Информация может быть получена, если вы предоставите заголовок Referer в своем запросе следующим образом:

import requests
from bs4 import BeautifulSoup

url = 'http://182.148.109.184/enterprise-info!getCompanyInfo.action?companyid=1000356'
page = requests.get(url, headers={'Referer' : url})
soup = BeautifulSoup(page.text, 'html.parser')

table = soup.find(class_='formestyle')

for tr in table.find_all('tr'):
    row = [v.text for v in tr.find_all(['th', 'td'])]
    print(row)

Это будет отображать данные следующего типа:

['地理坐标:', '经度:104.2153 \xa0\xa0纬度:31.3631']

Каквидно, информация сейчас присутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...