Базовый Python Scraper с TypeError: объект типа 'Response' не имеет len () - PullRequest
0 голосов
/ 09 января 2019

Я новичок в программировании веб-браузера с помощью 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)

Пожалуйста, помогите мне попробовать этот код. Любая помощь с благодарностью!

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Используйте html.text вместо html. Хорошей практикой является отправка заголовков, связанных с user-agent, внутри метода get ().

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
0 голосов
/ 09 января 2019

Внесите изменения в эту строку:

soup = BeautifulSoup(html, "lxml")

до

soup = BeautifulSoup(html.content, "lxml")

или

soup = BeautifulSoup(html.text, "lxml")

Возвращает структуру HTML веб-страницы.

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