BeautifulSoup возвращает None - PullRequest
       7

BeautifulSoup возвращает None

0 голосов
/ 13 октября 2018

Я пытаюсь получить название листинга в этом URL , но этот код возвращает None.

import requests 
from bs4 import BeautifulSoup  

# get the data 
data = requests.get('https://www.lamudi.com.ph/metro-manila/makati/condominium/buy/')

# Update Header
headers = requests.utils.default_headers()
headers.update({
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:31.0) 
Gecko/20100101 Firefox/31.0',
})
# load data into bs4
soup = BeautifulSoup(data.text, 'html.parser')

# We need to extract all the data in this div: <div 
class="ListingCell-KeyInfo-title" ..>

listingsTitle = soup.find('div', { 'class': 'ListingCell-KeyInfo-title'})
print(listingsTitle)

Есть идеи, почему это так?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Я пробовал с селеном и с конкретным ожиданием, но не работает.Если вы напечатаете суп, вы можете получить ошибку.На самом деле страница возвращает это: "Когда вы просматривали www.lamudi.com.ph , что-то в вашем браузере заставило нас думать, что вы бот. Есть несколько причин, по которым это может произойти:.. "

Сайт признает, что вы не человек.

import requests 
from bs4 import BeautifulSoup  

# get the data 
data = requests.get('https://www.lamudi.com.ph/metro-manila/makati/condominium/buy/')

# load data into bs4
soup = BeautifulSoup(data.text, 'html.parser')

# We need to extract all the data in this div: <div class="ListingCell-KeyInfo-title" ..>
print(soup)    #--> this print get the error

listingsTitle = soup.find('div', class_='ListingCell-KeyInfo-title')
print(listingsTitle)
0 голосов
/ 13 октября 2018

URL-адрес, который вы запрашиваете, относится к вам как к боту.

Запрос ответа:

h1>Pardon Our Interruption...</h1>
<p>
      As you were browsing <strong>www.lamudi.com.ph</strong> something about your 
browser made us think you were a bot. There are a few reasons this might happen:
        </p>
<ul>

Прежде чем что-то анализировать из ответа.

Сначала распечатайте содержимое, чтобы убедиться, что у вас есть правильный доступ к URL.

Вы должны добавить User-Agent или что-то еще, чтобы вы стали реальным пользователем

Попробуйте добавить это в заголовки вашего запроса:

USER_AGENT_FIREFOX= 'Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...