какой селектор CSS я должен использовать для доступа к числам на графике на веб-сайте (python) - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь извлечь некоторые цифры из графика на этой странице (https://www.zoopla.co.uk/local-info/?outcode=cm15&incode=9bq)

На этом графике 5 вкладок.

Меня интересует 5-яtab (Газеты).

Когда я запускаю этот фрагмент кода, я получаю некоторую информацию о первом графике с вкладками.

но soup.find_all ('', id = 'соседей-газеты') возвращает пробел.

from bs4 import BeautifulSoup as bs
import requests

res=requests.get('https://www.zoopla.co.uk/local-info/?outcode=cm15&incode=9bq')
soup = bs(res.content, 'lxml')

housing = [item.text.replace('\n','').strip() for item in soup.find_all('',id='local-info-neighbours')]
print(housing)

newspapers = [item.text.replace('\n','').strip() for item in soup.find_all('',id='neighbours-newspapers')]
print(newspapers)

Я не уверен, как получить доступ к идентификатору внутри идентификатора, если это так.Может ли кто-нибудь помочь, пожалуйста?

1 Ответ

1 голос
/ 26 марта 2019

Вы можете использовать регулярные выражения и запросы

import requests
import re
import ast

headers = {
    'Referer' : 'https://www.zoopla.co.uk/',
    'User-Agent' : 'Mozilla/5.0'
}
res = requests.get('https://www.zoopla.co.uk/widgets/local-info/neighbours-chart.html?outcode=cm15&incode=9bq&category=Newspapers', headers = headers)
data = re.search(r'categories: (\[.*])', res.text ,flags=re.DOTALL).group(1)
items = re.findall(r'(\[.*])', data)

papers = ast.literal_eval(items[0])
numbers = ast.literal_eval(items[1])
result = list(zip(papers, numbers))
print(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...