Я новичок в программировании веб-браузера с помощью Python. Я сделал несколько уроков и сейчас пробую свой первый. Здесь очень простой тест, который выдает ошибку, которую я заметил в строке «Тема».
import requests from bs4 import BeautifulSoup url = "https://www.autotrader.ca/cars/mercedes-benz/ab/calgary/?rcp=15&rcs=0&srt=3&prx=100&prv=Alberta&loc=T3P%200H2&hprc=True&wcp=True&sts=Used&adtype=Private&showcpo=1&inMarket=advancedSearch" user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' html = requests.get(url,headers={'User-Agent': user_agent}) soup = BeautifulSoup(html, "lxml") print(soup)
Пожалуйста, помогите мне попробовать этот код. Любая помощь с благодарностью!
Используйте html.text вместо html. Хорошей практикой является отправка заголовков, связанных с user-agent, внутри метода get ().
html.text
html
import requests from bs4 import BeautifulSoup url = "https://www.autotrader.ca/cars/mercedes-benz/ab/calgary/?rcp=15&rcs=0&srt=3&prx=100&prv=Alberta&loc=T3P%200H2&hprc=True&wcp=True&sts=Used&adtype=Private&showcpo=1&inMarket=advancedSearch" headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'} response = requests.get(url,headers=headers) soup = BeautifulSoup(response.text,"lxml") return soup
Внесите изменения в эту строку:
soup = BeautifulSoup(html, "lxml")
до
soup = BeautifulSoup(html.content, "lxml")
или
soup = BeautifulSoup(html.text, "lxml")
Возвращает структуру HTML веб-страницы.