Scrapy – Как загрузить строку html в функцию open_in_browser

Я работаю над кодом, который возвращает строку HTML ( my_html ). Я хочу посмотреть, как это выглядит в браузере, используя https://doc.scrapy.org/en/latest/topics/debug.html#open-in-browser . Для этого я попытался создать объект ответа с телом, установленным в ' my_html '. Я пробовал кучу вещей, в том числе:

 new_response = TextResponse(body=my_html) open_in_browser(new_response) 

на основе класса ответа ( https://doc.scrapy.org/en/latest/topics/request-response.html#response-objects ). Я получаю:

 new_response = TextResponse(body=my_html) File "c:\scrapy\http\response\text.py", line 27, in __init__ super(TextResponse, self).__init__(*args, **kwargs) TypeError: __init__() takes at least 2 arguments (2 given) 

Как я могу заставить это работать?

2 Solutions collect form web for “Scrapy – Как загрузить строку html в функцию open_in_browser”

TextResponse ожидает URL как первый аргумент :

 >>> scrapy.http.TextResponse('http://www.example.com') <200 http://www.example.com> >>> 

Если вы хотите передать тело, вам все равно нужен URL-адрес в качестве первого аргумента:

 >>> scrapy.http.TextResponse(body='<html><body>Oh yeah!</body></html>') Traceback (most recent call last): File "<console>", line 1, in <module> File "/home/paul/.virtualenvs/scrapy12/local/lib/python2.7/site-packages/scrapy/http/response/text.py", line 27, in __init__ super(TextResponse, self).__init__(*args, **kwargs) TypeError: __init__() takes at least 2 arguments (2 given) >>> scrapy.http.TextResponse('http://www.example.com', body='<html><body>Oh yeah!</body></html>') <200 http://www.example.com> 

Ваша ошибка, похоже, TextResponse инициализацией TextResponse , согласно документам, вам необходимо инициализировать ее URL-адресом, TextResponse("http://www.expample.com") .

Похоже, вы смотрите на документы объекта Response и пытаетесь использовать TextResponse как и Response , взглядами вашего необязательного аргумента и ссылкой на документы.

  • Scrapy: организация программы при взаимодействии со вторичным веб-сайтом
  • Scrapy: Как установить HTTP-прокси для подключения к HTTPS-сайтам (работает HTTP)?
  • Scrapy читает список URL-адресов из файла для очистки?
  • Scraw Crawler только тянет 19 из 680+ URL-адресов
  • Scrapy - Ссылки на соскабливание, найденные при очистке
  • Scrapy - Сканирование нескольких страниц на элемент
  • Как улучшить скорость загрузки scrapy?
  • Использование Scrapy с аутентифицированной (зарегистрированной) пользовательской сессией
  • Спайдер не нашел ошибку
  • Scrapy не сканирует все страницы
  • Спайдер-паук не работает
  • Python - лучший язык программирования в мире.