Python 3 Как чистить / сканировать на определенных доменах?

Я ищу, чтобы очистить все URL / текстовое содержимое и сканировать на определенных доменах.

Я видел метод очистки URL ( получить ссылки с веб-страницы, используя Python и BeautifulSoup )

Я также попробовал следующий код пребывания на определенных доменах, но, похоже, он не работает полностью.

domains = ["newyorktimes.com", etc]
p = urlparse(url)
print(p, p.hostname)
if p.hostname in domains:
    pass
else:
    return []

#do something with p

Моя основная проблема заключается в том, чтобы сканер оставался в указанном домене, но я не уверен, как это сделать, когда URL-адреса могут иметь разные пути / фрагменты. Я знаю, как почистить URL с данного сайта. Я открыт для использования BeautifulSoup, lxml, scrapy и т. Д.

Этот вопрос может быть слишком широким, но я попытался найти информацию о сканировании в определенных доменах, но не смог найти слишком релевантные материалы: /

Любая помощь / ресурсы будут с благодарностью!

Благодарность

Всего 1 ответ


Попробуй это.

from simplified_scrapy.spider import Spider, SimplifiedDoc
class MySpider(Spider):
  name = 'newyorktimes.com'
  allowed_domains = ['newyorktimes.com','nytimes.com']
  # concurrencyPer1s=1
  start_urls = 'https://www.newyorktimes.com'
  refresh_urls = True # For debug. If efresh_urls = True, start_urls will be crawled again.

  def extract(self, url, html, models, modelNames):
    doc = SimplifiedDoc(html)
    lstA = doc.listA(url=url['url'])
    return {"Urls": lstA, "Data": None} # Return data to framework

from simplified_scrapy.simplified_main import SimplifiedMain
SimplifiedMain.startThread(MySpider()) # Start crawling

Вот еще примеры: https://github.com/yiyedata/simplified-scrapy-demo/tree/master/spider_examples


Есть идеи?

10000