| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import re
- from pyquery import PyQuery as pq
- from proxypool.schemas.proxy import Proxy
- from proxypool.crawlers.base import BaseCrawler
- from loguru import logger
- class FreeProxyListCrawler(BaseCrawler):
- urls = [
- 'https://free-proxy-list.net',
- ]
- @logger.catch
- def crawl(self):
- """
- crawl main method
- """
- for url in self.urls:
- logger.info(f'fetching {url}')
- html = self.fetch(url)
- for proxy in self.parse(html):
- logger.info(f'fetched proxy {proxy.string()} from {url}')
- yield proxy
- def parse(self, html):
- """
- parse html file to get proxies
- :return:
- """
- print(html)
- proxies = re.findall(
- r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d+)',
- html)
- for proxy in proxies:
- yield Proxy(host=proxy[0], port=proxy[1])
- if __name__ == '__main__':
- crawler = FreeProxyListCrawler()
- for proxy in crawler.crawl():
- print(proxy)
|