Size: a a a

2020 August 20

К

Кирилл in Scrapy
И превратился в монстра)
источник

МС

Михаил Синегубов... in Scrapy
Andrey Rahmatullin
больше скажу, взял чувак написал сайт для общения одногруппников
ну с ним то понятно, а какая сволочь написала сайт для общения однокласснков....🙃
источник

К

Кирилл in Scrapy
Да, век бы их не видеть, кому вообще могло прийти в голову что люди хотят общаться с одноклассниками
источник

A

Andrii in Scrapy
вопрос знатокам, можно ли сделать following-sibling но так что б он остановился на определеном параметре?
источник

A

Andrii in Scrapy
//h4[contains(text(),'Contact Information')]/following-sibling::dl/dt...и что б не брал далее dt[text='phone']
источник

AR

Andrey Rahmatullin in Scrapy
в некоторых случаях наверно можно через position(), но проще циклом
источник

К

Кирилл in Scrapy
Мне тоже только такая идея приходит, узнать позицию элемента с телефоном, и потом взять все элементы у которых позиция меньше
источник

МС

Михаил Синегубов... in Scrapy
или, перебирать элементы, пока не встретишь элемент....., как его встретил, так сразу breack.

ИМХО циклом это наиболее адекватное и читаемое решение, иначе такого нагородить можно, что потом долго не вкуришь, что понаписал :)
источник

A

Andrii in Scrapy
Кирилл
Мне тоже только такая идея приходит, узнать позицию элемента с телефоном, и потом взять все элементы у которых позиция меньше
+1
источник

A

Andrii in Scrapy
location = response.xpath("//dt[text()='Address']/..']
address = location.xpath(".//dt[text()='Phone Number']/preceding::dd/text()").getall()
источник

A

Andrii in Scrapy
простое и красивое решение
источник

AR

Andrey Rahmatullin in Scrapy
да, если надо именно первый блок то проще конечно
источник

A

Andrii in Scrapy
А теперь очень тупой вопрос. Есть такая штука https://pypi.org/project/cloudscraper/, как ее правильно интегрировать со скрапи?
источник

A

Andrii in Scrapy
фактически не могу никак вписать вот ето, как правильно передать реснонс.бади?
источник

A

Andrii in Scrapy
scraper = cloudscraper.create_scraper()
scraper.get(url, proxies=proxies).text
источник

AR

Andrey Rahmatullin in Scrapy
нет, передать урл, написано же
источник

AR

Andrey Rahmatullin in Scrapy
cloudScraper works identically to a Requests Session object
источник

A

Andrii in Scrapy
ну я через свой довнлоадмидваре подключил, даже не знаю на сколько ето правильно
источник

A

Andrii in Scrapy
по простом сделал такую мидварку
from scrapy.http import HtmlResponse
import cloudscraper

class MtestMiddleware(object):
   def process_request(self, request, spider):
       # only process tagged request or delete this if you want all
       scraper = cloudscraper.create_scraper()  # returns a CloudScraper instance
       proxies = {'http': f'45.136.228.201:80', 'https': f'45.136.228.201:80'}
       r = scraper.get(request.url, proxies=proxies).text
       response = HtmlResponse(url=request.url, body=r, encoding='utf-8')
       return response
но теперь error:     `self.logger.info(f'Profile not exists: {response.url}')
AttributeError: 'Selector' object has no attribute 'url'`
источник

AR

Andrey Rahmatullin in Scrapy
код-то покажи который падает
источник