精华内容
参与话题
问答
  • java爬虫视频爬虫工具

    2019-03-07 11:46:26
    java爬虫(视频爬虫源码);可以支持爬各大视频网站;支持:优酷、土豆、酷6、6间房、搜狐、新浪 等视频网站的 视屏提取;只需要输入网站的URL 即可提取当前页面的所有视频;
  • Python之爬虫工具

    千次阅读 2017-09-05 20:49:37
    requests包:是一个实用的python的http客户端库,编写爬虫从web上爬取数据时经常用到 ,简单实用,接口简单 ,requests.get(URL)。 lxml包:主要用来解析通过requests抓取的html内容,从中提取出我们需要的数据,...

    requests包:是一个实用的python的http客户端库,编写爬虫从web上爬取数据时经常用到 ,简单实用,接口简单 ,requests.get(URL)。


    lxml包:主要用来解析通过requests抓取的html内容,从中提取出我们需要的数据,在对html文本内容进行提取、筛选时用到的是xpath语法 ,lxml使用的是xpath语法对html内容进行的定位筛选提取。


    lxml包的使用: 
    通过lxml工具可以从html代码中提取我们需要的数据
    一个网页就是一个html的文件  
    需要通过lxml对一个html格式的文件内容进行组织(组织成一个树形结构) 
    html文件是一个树形结构 - 类型linux系统的目录结构  
    通过lxml组织成树形结构后,然后再使用xpath语法对内容进行定位、筛选、过滤


    xpath的语法使用: 
    路径表示(使用xpath语法来表示xml文本中标签的路径)
    //div  定位到根节点下的所有的div标签,并返回一个可迭代对象
    //div[class="j-r-list-c-desc"]/hl/text()   提取某个标签下的文本数据
    /@href   提取的是某个标签下的属性名称为href的属性值

    筛选条件 
    //div[@class="link"] 定位到根目录下的包含class属性并且属性值为link的div标签
    //div[li]  筛选出根目录下所有的包含li子标签的div标签
    //div[@class] 筛选出包含class属性的div标签


    展开全文
  • p.ws = p.wb.active # 激活工具表 p.ws.append(['书名', '作者', '类型', '连载状态']) # 添加对应的表头 def geturl(p): url = [p.url.format(页数 =i) for i in range(1,15)] return url def parse_...
  • shell爬虫工具

    2013-04-19 17:19:12
    工具 1.wget 2.curl 3.sed 4.awk 5.lynx 6.grep 二.方法 1.lynx -dump URL #获取文本页面 2.grep关键字 3.sed/awk + 正则表达式 取得连接 4.curl取得页面所有信息(分析连接有效性,设置cookie信息) 5....

    一.工具

    1.wget

    2.curl

    3.sed

    4.awk

    5.lynx

    6.grep

    二.方法

    1.lynx -dump URL #获取文本页面

    2.grep关键字

    3.sed/awk + 正则表达式  取得连接

    4.curl取得页面所有信息(分析连接有效性,设置cookie信息)

    5.wget下载资源

    三.例子,获取gmail未读邮件

    #!/bin/bash
    
    username="@gmail.com"
    password=""
    
    curl -u $username:$password --silent "https://mail.google.com/mail/feed/atom" | \
    tr -d '\n' | sed 's:</entry>:\n:g'  | \
    sed 's/.*<title>\(.*\)<\/title>.*<author><name>\([^<])*\)<\/name><email>\([^<]*\)/Author: \2 [\3] \n Subject:\1\n/g'
    


    展开全文
  • File "C:/Pycharm/pro_2020/百度百科爬虫/craw_url.py", line 12, in db='baidu' raise exc pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (timed out)") ``` ...
  • python selenium爬虫工具

    2019-07-16 16:38:58
    今天seo的同事需要一个简单的爬虫工具, 根据一个url地址,抓取改页面的a连接,然后进入a连接里面的页面再次抓取a连接 1.需要一个全局的set([])集合来保存抓取的url地址 2.由于现在单页面也来越多,所以我们借用...

    今天seo的同事需要一个简单的爬虫工具, 根据一个url地址,抓取改页面的a连接,然后进入a连接里面的页面再次抓取a连接

    1.需要一个全局的set([])集合来保存抓取的url地址

    2.由于现在单页面也来越多,所以我们借用selenium来抓取页面内容, 由于页面内容比较多, 我们程序需要将滚动条滚到最下面,如:driver.execute_script("return document.body.scrollHeight;")

    3.需要查找页面2的超链接 driver.find_elements_by_xpath("//a[@href]")

    4.为了便于查看数据记录,每抓取一个地址就记录到日志中去(曾经尝试过爬网完毕后再记录,但是爬网时间太长,一旦出现异常就一条记录都没有了)

    整个代码如下:

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    from selenium.common.exceptions import TimeoutException
    import time
    import datetime
    from urllib import parse
    import os
    
    urls = set([])
    def getUrl(url,host):
        driver = webdriver.Ie()
        try:
           #driver = webdriver.Firefox()
            driver.set_page_load_timeout(10)
            driver.get(url)
    		#time.sleep(2)
    		
            all_window_height = []
            all_window_height.append(driver.execute_script("return document.body.scrollHeight;"))
            while True:
                driver.execute_script("scroll(0,100000)")
                time.sleep(1)
                check_height = driver.execute_script("return document.body.scrollHeight;")
                if check_height == all_window_height[-1]:
                    print("我已下拉完毕")
                    break
                else:
                    all_window_height.append(check_height) 
                    print("我正在下拉")
    		
            #for link in driver.find_elements_by_xpath("//*[@href]"):
            #for link in driver.find_elements_by_tag_name("a"):
            for link in driver.find_elements_by_xpath("//a[@href]"):
                try:
                    tempurl1=link.get_attribute('href')
                    if tempurl1.startswith("http"):
                        if tempurl1 not in urls:
                            urls.add(tempurl1)
                            log(host,url+','+tempurl1)
                            print(tempurl1)
                except:
                    print(link)
        except Exception as e:
            print(e)
        finally:
            driver.quit()
    
    
    
    def log(name,msg):
        filename='D://'+name+'.csv'
        if not os.path.exists(filename):
            with open(filename,'w') as f:
                print('create file:'+filename)
                f.write('parentUrl,currenturl'+'\n')
            f.close()
        with open(filename,'a') as f:
            f.write(msg+'\n')
        f.close()
    
    url= input("Enter a url")
    try:
        urls.clear()
        url= url.strip()
        if len(url)>0:
            host =parse.urlparse(url).netloc
            print(url+"下面的连接:")
            t1=datetime.datetime.now()
            getUrl(url,host)
            l=list(urls)
            for item in l:
                print(item+"下面的连接:")
                getUrl(item,host)
            t2=datetime.datetime.now()
            tt =(t2-t1).seconds
            minutes=tt//60
            seconds=tt%60
        print("total cost %d minutes %d seconds" % (minutes,seconds))
    
    except Exception as e:
        print(e)
    

    然后运行pyinstaller -F a.py 打包

    关于selenium 的IE 可以参考https://blog.csdn.net/ma_jiang/article/details/96022775

    展开全文
  • jsoup爬虫工具介绍

    2018-11-27 17:18:50
    jsoup 是一款 Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 jsoup 可以从包括字符串、URL 地址以及本地文件...

    一.介绍

    jsoup 是一款 Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

    jsoup 可以从包括字符串、URL 地址以及本地文件来加载 HTML 文档,并生成 Document 对象实例。Element对象则提供了一系列类似于DOM的方法来查找元素,抽取并处理其中的元素。

    它还有一个名称“Beautifulsoup for Java”,对爬虫知识感兴趣的朋友一般都是从Python的爬虫开始,那么自然不会对Beautifulsoup感到陌生,而Jsoup就是java环境下同样具有html文档解析的最好的选择之一。

    jsoup 的主要功能如下:

    1. 从一个 URL,文件或字符串中解析 HTML;

    2. 使用 DOM 或 CSS 选择器来查找、取出数据;

    3. 可操作 HTML 元素、属性、文本

    官方文档:https://jsoup.org/cookbook/

    中文文档:http://www.open-open.com/jsoup/

    .如何取页面

     

    Jsoup提供了用来解析html页面的方法 parse(),我们通过解析它可以获取整个页面的dom对象,通过这个对象来获取你所需要的页面所须有的参数。获取页面的方法有很多,这里就简单的列举几个:

     

    1.通过Jsoup自带的connect()方法

    jsoup最主要用到的就是的elements类和select()方法。elements类相当于网页元素中的标签,而select()方法用于按一定条件选取符合条件的标签,组成符合条件的标签数组。

    //下载网页

    String URL="输入网址";

    Document document=Jsoup.cnnect("URL");//Jsoup自带的方法

    //在下载的document里进行检索的语句

    elements test=document.select("#id")

     

    2.你可以通过httpclient,HttpURLConnection等获取,用jsoup的Jsoup.parse()方法将String类型的对象转化为Document对象,方便使用Jsoup的解析。

    File input = new File(FilePath);

    Document doc = Jsoup.parse(input, "UTF-8", “”);

     

    .Document对象常用方法

    方法

    介绍

    select()

    select 方法在Document, Element,或Elements对象中都可以使用。Select方法将返回一个Elements集合。

    getElementsByClass()

     通过Class属性来定位元素,获取的是所有带这个class属性的集合

    getElementsByTag()

    通过标签名字来定位元素,获取的是所有带有这个标签名字的元素结合

    getElementById()

    通过标签的ID来定位元素,这个是精准定位,因为页面的ID基本不会重复

    getElementsByAttributeValue()

    通过属性和属性名来定位元素,获取的也是一个满足条件的集合

    getElementsByAttributeValueMatching()

    通过正则匹配属性

    attr()

    获取/设置属性

    attributes()

    获取所有属性

    text()

    获取/设置文本内容

    html()

    获取/设置元素内的html内容

    outerHtml()

    获取元素外HTML内容

     

    data()

    获取数据内容(例如:script和style标签)

     

     

     

         Selector选择器概述

     

    •    tagname: 通过标签查找元素,比如:a

    •    ns|tag: 通过标签在命名空间查找元素,比如:可以用 fb|name 语法来查找 <fb:name> 元素

    •    #id: 通过ID查找元素,比如:#logo

    •    .class: 通过class名称查找元素,比如:.masthead

    •    [attribute]: 利用属性查找元素,比如:[href]

    •    [^attr]: 利用属性名前缀来查找元素,比如:可以用[^data-] 来查找带有HTML5 Dataset属性的元素

    •    [attr=value]: 利用属性值来查找元素,比如:[width=500]

    •    [attr^=value], [attr$=value], [attr*=value]: 利用匹配属性值开头、结尾或包含属性值来查找元素,比如:[href*=/path/]

    •   [attr~=regex]: 利用属性值匹配正则表达式来查找元素,比如: img[src~=(?i)\.(png|jpe?g)]

    •    *: 这个符号将匹配所有元素

     

     

    Selector选择器组合使用

     

    •    el#id: 元素+ID,比如: div#logo

    •    el.class: 元素+class,比如: div.masthead

    •    el[attr]: 元素+class,比如: a[href]

    •    任意组合,比如:a[href].highlight

    •    ancestor child: 查找某个元素下子元素,比如:可以用.body p 查找在"body"元素下的所有 p元素

    •    parent > child: 查找某个父元素下的直接子元素,比如:可以用div.content > p 查找 p 元素,也可以用body > * 查找body标签下所有直接子元素

    •    siblingA + siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div

    •    siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p

    •    el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo

     

     

    伪选择器selectors

     

    •    :lt(n): 查找哪些元素的同级索引值(它的位置在DOM树中是相对于它的父节点)小于n,比如:td:lt(3) 表示小于三列的元素

    •    :gt(n):查找哪些元素的同级索引值大于n,比如: div p:gt(2)表示哪些div中有包含2个以上的p元素

    •    :eq(n): 查找哪些元素的同级索引值与n相等,比如:form input:eq(1)表示包含一个input标签的Form元素

    •    :has(seletor): 查找匹配选择器包含元素的元素,比如:div:has(p)表示哪些div包含了p元素

    •    :not(selector): 查找与选择器不匹配的元素,比如: div:not(.logo) 表示不包含 class=logo 元素的所有 div 列表

    •    :contains(text): 查找包含给定文本的元素,搜索不区分大不写,比如: p:contains(jsoup)

    •    :containsOwn(text): 查找直接包含给定文本的元素

    •    :matches(regex): 查找哪些元素的文本匹配指定的正则表达式,比如:div:matches((?i)login)

    •    :matchesOwn(regex): 查找自身包含文本匹配指定正则表达式的元素

    •    注意:上述伪选择器索引是从0开始的,也就是说第一个元素索引值为0,第二个元素index为1等

     

     

     

     

    .简单的java爬虫代码  

         

    public Document getDoc (String url){
        try {
            Document  doc = Jsoup.connect(url)
                    .header("Accept-Encoding", "gzip, deflate")  
                    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0)Gecko/20100101 Firefox/23.0")  
                    .maxBodySize(0)  
                    .timeout(600000000)  
                    .get();
            return doc;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
    -----------------------------------------------------------------------------------------------
    
    /*  doc是我们通过第一步获得的doucmen对象。select括号里面的意思是class为content-item和expert的a标签元素。多个class记得要用逗号隔开。其中的 “a” 可以是 “div”、“span”等标签名。
    */        
            Elements  contentEs = doc.select("a.content-item,expert");
            
        //因为获得的不是一个元素,所以使用get(index)方法,获得对应的元素,以0开始。
            Element  contentE = contentEs.get(0);
    
        //也可以使用增强型for循环将它遍历。其中.attr()方法是获得该元素的某某属性值,比如a标签的href值。
            for(Element e : contentEs ){
                    e.attr("href");
            }
    
        //如果一次select()方法没用选到具体的,可以多次使用该方法。下面就调用了三次select()方法。
           Elements e = doc.select("div.menu-item,menu-skincare");
           Elements ee = e.select("div.column");
            for(int i=0 ; i<cc.size();i++){
                    Elements eee = ee.get(i).select("a.submenu-item");
        }
        //将标签里的文本提取出来
           String result  = eee.text();

          

             

     

     

     

     

     

     

    参考:
    https://blog.csdn.net/smile_miracle/article/details/70677570
    https://cloud.tencent.com/developer/article/1359869
    https://blog.csdn.net/u014798883/article/details/54909951
     

    展开全文
  • python爬虫工具集合

    2018-08-03 11:36:56
    python爬虫工具集合 大家一起来整理吧!强烈建议PR。这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib &nbsp; &nbsp; - Urllib是python提供...
  • Larbin 爬虫工具介绍

    千次阅读 2005-02-19 14:24:00
    larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。 Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立...
  • php写爬虫工具

    千次阅读 2011-11-11 09:50:39
    以下分析一个代码示例: 偷别的站也是一个道理.关键是方法.小偷就是用ASP,PHP或者其他语言在程序中打开并且处理这些HTML ...$url = "http://www.xxx.com/Index/xxx/id/100";...$fp = @fopen($url, "r") or
  • Larbin 爬虫工具介绍

    2007-09-18 21:58:00
    larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。 Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的...
  • 图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...
  • Java 爬虫工具Jsoup解析

    万次阅读 2017-04-25 10:46:49
    Jsoup是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。 jsoup 的主要功能如下: 1. 从一个 ...
  • 神箭手云爬虫工具

    千次阅读 2019-06-10 14:40:52
    title: 神箭手云爬虫 categories: 神箭手 tags: 爬虫 分为: 入口页,帮助页,内容页 ...contentUrl队列:此队列中存放内容页类型的链接,自动链接发现以及site.addUrl的时候,通过正则表达式来判断链接类型,如...
  • URl编码和base64编码工具类 import java.io.UnsupportedEncodingException; import java.util.Base64; /** * 编码解码工具类 */ public class CodeUtils { /** * * @param obj 需要编码的数据 * @param ...
  • jsoup爬虫工具的使用: *需要的jar包 --> Jsoup* 解决方案:1.通过url 获得doucment对象,2.调用select()等方法获得Elements对象,3.调用.text()等方法,获得自己想要的内容。 以下是第一步的三种方法,其中第一...
  • Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取...
  • Jsoup-解析HTML工具(简单爬虫工具) 一、简介 ​ jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。...
  • 最近需要从谷歌和必应上爬一批图片,但是基于不同网站有不同的规则,所以对于我这个爬虫小白来说,URL以及正则化表达式的理解和查改就很困难。 后来在github上发现了很好用的工具,简便快捷,正好分享给大家。 1....
  • 工具用于网络爬虫中的URL请求,来自于本人写的书《网络数据采集技术–Java网络爬虫入门与实战》。 package com.util; import java.io.IOException; import java.util.ArrayList; import java.util.List; import ...
  • Jsoup爬虫工具实现背景图片爬取soup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 复制代码之前准备...
  • 这个玩意,特别适合爬一些反爬虫很强,但是无需登录的网站。当然需要登陆的也可以搞。只要你提前登陆一下就行。 这库里,最有用的东西就是下面的代码。 from selenium import webdriver import lxml.etree ...
  • 爬虫,即网络爬虫,是一种自动获取网页...传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较
  • scrapy-爬虫工具-工作流程图: scrapy运行流程 1、Engine开始统揽全局,向Spider索要URL 2、Engine拿到url后,给Scheduler(调度器)入队列 3、Scheduler从队列中拿出url给Engine,通过Downloader Middlewares 给...
  • Python入门网络爬虫之精华版 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要...
  • import requests from bs4 import BeautifulSoup ...resource = requests.get(url) html = resource.text soup = BeautifulSoup(html, 'xml') net_url = soup.find_all('video') video_url = [] for x in net.
  • Python2爬虫程序工具

    2018-04-10 16:51:51
    这个程序包括调度器,URL管理器,网页下载器,网页解析器,数据存取器。

空空如也

1 2 3 4 5 ... 20
收藏数 1,124
精华内容 449
关键字:

url爬虫工具

爬虫 订阅