勤学思培训网LBGNBG
  • 终于清楚python网络爬虫的工具

    爬虫可以抓取网络上的数据,爬虫可用很多种编程语言实现,python只是一种,下面是小编为您整理的关于python网络爬虫的工具,希望对你有所帮助。


    [图片0]

    Python网络爬虫的工具列表

    通用:

    urllib -网络库(stdlib)。

    requests -网络库。

    grab – 网络库(基于pycurl)。

    pycurl – 网络库(绑定libcurl)。

    urllib3 – Python HTTP库,安全连接池、支持文件post、可用性高。

    httplib2 – 网络库。

    RoboBrowser – 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。

    MechanicalSoup -一个与网站自动交互Python库。

    mechanize -有状态、可编程的Web浏览库。

    socket – 底层网络接口(stdlib)。

    Unirest for Python – Unirest是一套可用于多种语言的轻量级的HTTP库。

    hyper – Python的HTTP/2客户端。

    PySocks – SocksiPy更新并积极维护的版本,包括错误修复和一些其他的特征。作为socket模块的直接替换。

    异步:

    treq – 类似于requests的API(基于twisted)。

    aiohttp – asyncio的HTTP客户端/服务器(PEP-3156)。

    网络爬虫框架

    功能齐全的爬虫

    grab – 网络爬虫框架(基于pycurl/multicur)。

    scrapy – 网络爬虫框架(基于twisted),不支持Python3。

    pyspider – 一个强大的爬虫系统。

    cola – 一个分布式爬虫框架。

    其他

    portia – 基于Scrapy的可视化爬虫。

    restkit – Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。

    demiurge – 基于PyQuery的爬虫微框架。

    HTML/XML解析器

    通用

    lxml – C语言编写高效HTML/ XML处理库。支持XPath。

    cssselect – 解析DOM树和CSS选择器。

    pyquery – 解析DOM树和jQuery选择器。

    BeautifulSoup – 低效HTML/ XML处理库,纯Python实现。

    html5lib – 根据WHATWG规范生成HTML/ XML文档的DOM。该规范被用在现在所有的浏览器上。

    feedparser – 解析RSS/ATOM feeds。

    MarkupSafe – 为XML/HTML/XHTML提供了安全转义的字符串。

    xmltodict – 一个可以让你在处理XML时感觉像在处理JSON一样的Python模块。

    xhtml2pdf – 将HTML/CSS转换为PDF。

    untangle – 轻松实现将XML文件转换为Python对象。

    清理

    Bleach – 清理HTML(需要html5lib)。

    sanitize – 为混乱的数据世界带来清明。

    文本处理

    用于解析和操作简单文本的库。

    通用

    difflib – (Python标准库)帮助进行差异化比较。

    Levenshtein – 快速计算Levenshtein距离和字符串相似度。

    fuzzywuzzy – 模糊字符串匹配。

    esmre – 正则表达式加速器。

    ftfy – 自动整理Unicode文本,减少碎片化。

    转换

    unidecode – 将Unicode文本转为ASCII。

    字符编码

    uniout – 打印可读字符,而不是被转义的字符串。

    chardet – 兼容 Python的2/3的字符编码器。

    xpinyin – 一个将中国汉字转为拼音的库。

    – 格式化文本中CJK和字母数字的间距。

    Slug化

    awesome-slugify – 一个可以保留unicode的Python slugify库。

    python-slugify – 一个可以将Unicode转为ASCII的Python slugify库。

    unicode-slugify – 一个可以将生成Unicode slugs的工具。

    pytils – 处理俄语字符串的简单工具(包括)。

    通用解析器

    PLY – lex和yacc解析工具的Python实现。

    pyparsing – 一个通用框架的生成语法分析器。

    人的名字

    python-nameparser -解析人的名字的组件。

    电话号码

    phonenumbers -解析,格式化,存储和验证国际电话号码。

    用户代理字符串

    python-user-agents – 浏览器用户代理的解析器。

    HTTP Agent Parser – Python的HTTP代理分析器。

    网页内容提取

    提取网页内容的库。

    HTML页面的文本和元数据

    newspaper – 用Python进行新闻提取、文章提取和内容策展。

    html2text – 将HTML转为Markdown格式文本。

    python-goose – HTML内容/文章提取器。

    lassie – 人性化的网页内容检索工具

    micawber – 一个从网址中提取丰富内容的小库。

    sumy -一个自动汇总文本文件和HTML网页的模块

    Haul – 一个可扩展的图像爬虫。

    python-readability – arc90 readability工具的快速Python接口。

    scrapely – 从HTML网页中提取结构化数据的库。给出了一些Web页面和数据提取的示例,scrapely为所有类似的网页构建一个分析器。

    视频

    youtube-dl – 一个从YouTube下载视频的小命令行程序。

    you-get – Python3的YouTube、优酷/ Niconico视频下载器。

    维基

    WikiTeam – 下载和保存wikis的工具。

    Python爬虫开源软件工具

    (1)QuickRecon

    QuickRecon是一个简单的信息收集工具,它可以帮助你查找子域名名称、perform zone transfe、收集电子邮件地址和使用microformats寻找人际关系等。


    [图片1]

    QuickRecon使用python编写,支持linux和 windows操作系统。

    授权协议: GPLv3

    开发语言: Python

    操作系统: Windows Linux

    特点:具有查找子域名名称、收集电子邮件地址并寻找人际关系等功能

    (2)PyRailgun

    这是一个非常简单易用的抓取工具。支持抓取javascript渲染的页面的简单实用高效的python网页爬虫抓取模块

    授权协议: MIT

    开发语言: Python

    操作系统: 跨平台 Windows Linux OS X

    特点:简洁、轻量、高效的网页抓取框架

    备注:此软件也是由国人开放

    (3)Scrapy

    Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便~

    授权协议: BSD

    开发语言: Python

    操作系统: 跨平台

    如何在Python利用runJavascript模拟鼠标移动页面的某个元素

    之前看到一个回答是因为selenium框架被前段检测了,然后用PyQt5制作浏览器去实现爬虫,我现在也遇到了同样的问题,但是问题是在我不知道如何用Js的语句去模拟鼠标移动某个元素。

    代码:

    from import QApplication

    from import QWebEngineView

    from import QUrl

    import pyautogui

    import time

    import sys

    app = QApplication([])

    view = QWebEngineView()

    (QUrl("url"))

    ()

    page = ()

    #a = 0

    #global a

    def test():

    ("$('#account').val(123)")

    ("$('#password').val(123)")

    ("$('#btn-login').trigger('click')")

    (1)

    # ("alert($('#distance').html())")

    ("$('.smallImg').trigger('click')")

    #(test)

    ()

    就是需要移动一个class名为smallImg的元素, 上面的输入和点击登录都完成了,现在卡在移动那块。

    具体的移动需要:

    鼠标移动到smallImg这个元素的坐标,点击并水平拖动一定的距离,然后释放。具体的移动距离可以先不考虑识别图片,我可以获取到需要移动的距离。