3 votes

Aucun résultat dans la recherche bing scraping

J'utilise le code ci-dessous pour extraire les résultats de Bing et lorsque je vois la page Web extraite, le message "There are no results for python" apparaît. Mais lorsque je fais une recherche dans le navigateur, il n'y a pas de problème.

import requests
from bs4 import BeautifulSoup

term = 'python'
url = f'https://www.bing.com/search?q={term}&setlang=en-us'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.prettify())

J'ai cherché et je n'ai pas trouvé de problème similaire.

3voto

KunduK Points 26770

Vous devez passer le user-agent tout en demandant à obtenir la valeur.

import requests
from bs4 import BeautifulSoup

term = 'python'
url = 'https://www.bing.com/search?q={}&setlang=en-us'.format(term)
headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.prettify())

0voto

F.M Points 33

Étant donné que Bing est un site web dynamique, ce qui signifie que le code est généré par Javascript, vous ne pourrez pas le gratter en utilisant uniquement Beautifulsoup. Je vous recommande plutôt sélénium qui ouvre un navigateur que vous pouvez contrôler et analyser le code avec Beautifulsoup.

Il en va de même pour tout autre site web codé dynamiquement, y compris Google et bien d'autres.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X