• lmxl的xpath提取脚本之间的title以及url


      运用lmxl的xpath提取脚本之间的title以及url:

    import urllib.request
    import lxml
    import lxml.etree
    import re
    def  makeurllist(url):
        headers={"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);"}
        request = urllib.request.Request(url, headers=headers)  # 请求,修改,模拟http.
        data = urllib.request.urlopen(request).read()  # 打开请求,抓取数据
        mytree = lxml.etree.HTML(data)
        mylist=mytree.xpath("//*[@class="dxypage clearfix"]//text()")
        lastmystr=mylist[0]
        restr="页次:1/(d+) 每页"
        regex=re.compile(restr,re.IGNORECASE)
        mylastlist=regex.findall(lastmystr)
        numbers=eval(mylastlist[0])  #整数
        urllist=[]
        for i in range(1,numbers+1):
            urllist.append("https://www.jb51.net/list/list_97_"+str(i)+".htm")
    
        #print(urllist)
        return urllist
    def gettitlefromurl(url):
        lastlist=[]     #[(title,url),(title,url),(title,url),(title,url)]
        headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);"}
        request = urllib.request.Request(url, headers=headers)  # 请求,修改,模拟http.
        data = urllib.request.urlopen(request).read()  # 打开请求,抓取数据
        mytree = lxml.etree.HTML(data)
        urllist=mytree.xpath("//*[@class="artlist clearfix"]/dl/dt/a/@href")  #* 匹配任何元素节点    //*[@class="artlist clearfix"] 表示从当前节点下降的所有元素节点
        #print(urllist)
        titlelist = mytree.xpath("//*[@class="artlist clearfix"]/dl/dt/a/@title")
        #print(titlelist)
        for list1 in urllist:
            for list2 in titlelist:
                lastlist.append((list2,list1))
        #print(lastlist)
        return lastlist
    
    url="https://www.jb51.net/list/list_97_1.htm"
    #makeurllist("https://www.jb51.net/list/list_97_1.htm")
    #gettitlefromurl("https://www.jb51.net/list/list_97_1.htm")
    for allurl in makeurllist(url):
        gettitlefromurl(allurl)
        print(gettitlefromurl(allurl))  #返回列表元组[(title,url),(title,url),(title,url),(title,url)]
  • 相关阅读:
    Linux数据备份
    eclipse 中使用等宽字体 inconsolata
    在ubuntu14.04 64位中使用jd-gui
    Fragment 常见问题
    ClassNotFoundException
    符号表的简单使用
    一个简单的词法分析器
    一个简单的语法分析器(后缀式转换)
    火狐无法显示图片
    ftp 匿名访问设置
  • 原文地址:https://www.cnblogs.com/my-global/p/12454091.html
Copyright © 2020-2023  润新知