python小白爬取新浪li标签的超链接和内容

新浪页面分析: 新浪的主页大部分新闻内容都是通过li标签列出来,然后再在li标签里面加个a标签,用来存超链接和内容
在这里插入图片描述
通过上面的分析,可以通过正则找到所有<li>><a></a></li>格式的标签,代码如下:

import re
import requests
def getHTMLText(url): #得到HTML的网页
    try:
        kv = {
            "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"}
        r=requests.get(url,headers=kv,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return ""

def fillunivList(ulist,html): #把每个标签的标签链接和标签名称存入ulist列表中,这里是二维列表
    try:
        for plt in re.finditer(r'<li><a href="http.*">.*</a></li>',html): #用正则筛选<li>><a></a></li>格式的内容,然后用finditer方法遍历
            a=re.sub(r'<li><a href="|target=".*"|"|>|<b>|</b>|</a></li>',"",plt.group(0)) #删除不用的内容,只留下超链接和标签内容
            ulist.append(a.split(" ")) #把每次得到的超链接和内容存入ulist列表中
    except:
        return ""


def main(): #创建一个主函数
    ulist=[] #创建一个列表,用来存放标签链接和标签名称
    url="https://www.sina.com.cn/"
    html=getHTMLText(url)
    fillunivList(ulist,html)
    op= open(r'C:\Users\Mr.Wang\Desktop\新浪标签获取文件.txt', 'x') #在桌面创建一个txt文件夹,用来存放得到的信息
    op.write("标签链接                                  标签名称") #给个提示,左边是放链接,右边是放名称
    op.write('\r\n') #换行
    for ls in ulist: #遍历从fillunivList函数得到的ulist,遍历这个列表
        op.writelines(ls) #用writeLines把ulist每个列表写个txt文件中
        op.write('\r\n') #换行
main()

运行如下:
在这里插入图片描述

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值