Skip to main content

使用多线程、随机代理和用户代理抓取网站

项目描述

First_scrap

https://theodor85.github.io/first_scrap/


英语, Русский


First_scrap 是一个用于多线程抓取站点的库,带有随机代理和用户代理。

安装

要开始使用 first_scrap 库,请激活(或在必要时创建)您的虚拟环境。例如,如下所示:

python3 -m venv env
source ./env/bin/activate

要安装 First_scrap 使用 pip 包管理器:

pip install firstscrap

另一种安装方法是从 GitHub 获取源代码。为此,请在控制台中执行命令:

git clone http://github.com/theodor85/first_scrap
cd first_scrap
python setup.py develop

如何使用

使用示例从一个网页中提取数据:

from firstscrap import pagehandler

@pagehandler(parser="BeautifulSoup")
def get_data(url, soup=None):
    # your only beatifulsoup code, without any requests, proxies, etc
    span = soup.find( name="span", attrs={"class": "p-nickname vcard-username d-block"} )
    text = span.get_text().strip()
    return text

if __name__ == '__main__' :
    print( get_data('https://github.com/theodor85') )

    # output:
    # theodor85

引擎盖下是什么

从单个页面中提取数据时:

  1. 从存储在文件中的列表中选择随机代理服务器和用户代理。
  2. 这些代理和用户代理用于访问我们需要的页面。
  3. 使用 BeautifulSoup 从页面中检索数据。

最有趣的是大量相同的页面处理

这是示例:

from firstscrap import listhandler

TEST_URLLIST_OLX = [
    'https://www.olx.ua/obyavlenie/spetsialist-po-podklyucheniyu-interneta-IDGnCkB.html',
    'https://www.olx.ua/obyavlenie/menedzher-po-robot-s-klentami-IDGkGK6.html',
]

@listhandler(threads_limit=5, parser='BeautifulSoup')
def get_date_time_from_olx(urllist, soup=None):
    ''' Beautifulsoup code for one page '''
    em = soup.find('em')
    row_text = em.get_text().strip()
    return row_text

if __name__ == '__main__' :
    data = get_date_time_from_olx(TEST_URLLIST_OLX)
    for item in data:
        print(item)
# output:
# Добавлено: в 16:49, 26 декабря 2019, Номер объявления: 626235005
# Добавлено: в 16:18, 29 декабря 2019, Номер объявления: 625536978

引擎盖下是什么

程序在单独的线程中处理每一页,同时运行的线程数不超过threads_limit.

每个线程都使用随机代理和用户代理发出请求。

运行测试

要在控制台中运行测试类型:

python -m unittest -v tests/tests.py

在运行测试之前,请确保您的 Internet 连接处于活动状态。

贡献

将您的代码合并到“开发”分支以供贡献。

欢迎分叉和拉取请求!如果你喜欢first_scrap,别忘了给个star!

错误报告

要报告错误,请发送邮件至fedor_coder@mail.ru ,并附上标签“first_scrap 错误报告”。

执照

该项目在 MIT 许可证下获得许可 - 有关详细信息,请参阅LICENSE.txt文件。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

firstscrap-0.2.0.tar.gz (10.1 kB 查看哈希

已上传 source

内置分布

firstscrap-0.2.0-py3-none-any.whl (14.1 kB 查看哈希

已上传 py3