zoukankan      html  css  js  c++  java
  • 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)]
  • 相关阅读:
    .NET学习笔记(1)— C#学习路线图
    Huffman树压缩程序(c实现)
    selenium webdriver使用一二三
    同时装了python2和python3,pip没法使用
    NotePad++配置python开发环境(windows)
    用Sublime搭建Python开发环境(windows)
    mapbox将图层缩放到视口合适区域
    关于 FormData 和 URLSearchParams
    vue-router在新窗口打开页面
    微信小程序wx.request 请求方法
  • 原文地址:https://www.cnblogs.com/my-global/p/12454091.html
Copyright © 2011-2022 走看看