kuaidaili.py 873 B

1234567891011121314151617181920212223242526272829303132
  1. from proxypool.crawlers.base import BaseCrawler
  2. from proxypool.schemas.proxy import Proxy
  3. import re
  4. from pyquery import PyQuery as pq
  5. BASE_URL = 'https://www.kuaidaili.com/free/inha/{page}/'
  6. class KuaidailiCrawler(BaseCrawler):
  7. """
  8. kuaidaili crawler, https://www.kuaidaili.com/
  9. """
  10. urls = [BASE_URL.format(page=page) for page in range(1, 200)]
  11. def parse(self, html):
  12. """
  13. parse html file to get proxies
  14. :return:
  15. """
  16. doc = pq(html)
  17. for item in doc('table tr').items():
  18. td_ip = item.find('td[data-title="IP"]').text()
  19. td_port = item.find('td[data-title="PORT"]').text()
  20. if td_ip and td_port:
  21. yield Proxy(host=td_ip, port=td_port)
  22. if __name__ == '__main__':
  23. crawler = KuaidailiCrawler()
  24. for proxy in crawler.crawl():
  25. print(proxy)