随笔 - 172  文章 - 52  评论 - 6  阅读 - 17万

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)]
复制代码

 

posted on   共感的艺术  阅读(783)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示