python获取个人博客所有标题

import requests
import xlwt
from bs4 import BeautifulSoup
import urllib.request
import time
import lxml
import os
import time

opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
print("爬取博客开始")
#添加
main_url='https://blog.csdn.net/qq_36958104'

page=1
#url = main_url + '/article/list/' + str(page)
#https://blog.csdn.net/qq_36958104/article/list/1
#    qq_36958104
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
ss=None
flag=0
count=1
page_flag=1
#for count in range(2000):
while(count<10):
    try:
        url = main_url + '/article/list/' + str(count)
        r=requests.get(url,headers=headers,timeout=10)
        # print(r.text)
        # r.raise_for_status()    
        # print("网页编码是:"+r.encoding)
        # # print(r.)
        # # 获取页面内容
        # # prin5t(r.text)
        # 给excel放数据的  一个就是一行
        all_lists = []
        book = xlwt.Workbook(encoding='utf-8')#创建工作簿
        soup = BeautifulSoup(r.text, 'lxml')
        # 下面的这种方法会报错   TypeError("'NoneType' object is not callable")
        # ss=soup.findall("class",class_="article-item-box csdn-tracking-statistics")
        # 找到所有class为article-item-box csdn-tracking-statistics的节点
        row0 = ['文章标题','文章链接']#定义表头,即Excel中第一行标题
        sheet = book.add_sheet('bokewangzhi',cell_overwrite_ok=True)
        sheet.write(0,0,row0[0])#写入表
        
        sheet.write(0,1,row0[1])#写入表
        for s in soup.findAll(name="div", attrs={"class" :"article-item-box csdn-tracking-statistics"}):
            for ss in s.findAll(name="h4"):
                    sss=ss.find(name="a",href=True);
                    #print("文章标题:"+ss.getText().replace("","").strip()+"\n文章链接:"+sss['href'])
                    print("文章标题:"+ss.getText().replace("","").strip())
                    opener.open(sss['href'])#打开网页刷访问
                    #print(sss['href'])#打印网址链接                   
                    list=[ss.getText().replace("原创","").strip()]
                    all_lists.append(list)
                    #print(list)
        #第一行开始
        i=1
        for all_list in all_lists:
            j=0
            for data in all_list:
                    sheet.write(i,j,data)#迭代列,并写入数据,#重新设置,需要cell_overwrite_ok=True
                    j+=1
            i+=1
        book.save("bokewangzhi.xls")
        count=count+1
        print("第",count,"页数据")
        #time.sleep(10)
        if count>5:
           count=0
           flag+=1
           print('爬取次数统计',flag*200)
           print("重新开始")
           del count
           del i
           del all_list
           del list
           time.sleep(60)
    except Exception as e:
     print("出现异常------异常信息:"+repr(e));
     #os.system('python pachong3.py') #启动dos
    except urllib.error.HTTPError:
     print('urllib.error.HTTPError')
     time.sleep(60)
    except urllib.error.URLError:
     print('urllib.error.URLError')
     time.sleep(60)





    

python获取个人博客所有标题

 

import requests
import xlwt
from bs4 import BeautifulSoup
import urllib.request
import time
import lxml
import os
import time

opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
print("爬取博客开始")
url="https://blog.csdn.net/qq_36958104"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
ss=None
flag=0

for count in range(20000):
    try:
        r=requests.get(url,headers=headers,timeout=30)
        # print(r.text)
        # r.raise_for_status()    
        # print("网页编码是:"+r.encoding)
        # # print(r.)
        # # 获取页面内容
        # # print(r.text)
        # 给excel放数据的  一个就是一行
        all_lists = []
        book = xlwt.Workbook(encoding='utf-8')#创建工作簿
        soup = BeautifulSoup(r.text, 'lxml')
        # 下面的这种方法会报错   TypeError("'NoneType' object is not callable")
        # ss=soup.findall("class",class_="article-item-box csdn-tracking-statistics")
        # 找到所有class为article-item-box csdn-tracking-statistics的节点
        row0 = ['文章标题','文章链接']#定义表头,即Excel中第一行标题
        sheet = book.add_sheet('AINY',cell_overwrite_ok=True)
        sheet.write(0,0,row0[0])#写入表
        
        sheet.write(0,1,row0[1])#写入表
        for s in soup.findAll(name="div", attrs={"class" :"article-item-box csdn-tracking-statistics"}):
            for ss in s.findAll(name="h4"):
                    sss=ss.find(name="a",href=True);
                    print("文章标题:"+ss.getText().replace("","").strip()+"\n文章链接:"+sss['href'])
                    
                    print(sss['href'])#打印网址链接
                    flag+=1
                    print('爬取次数统计',flag)                   
                    list=[ss.getText().replace("原创","").strip(),sss['href']]
                    all_lists.append(list)
        #第一行开始
        i=1
        for all_list in all_lists:
            j=0
            for data in all_list:
                    sheet.write(i,j,data)#迭代列,并写入数据,#重新设置,需要cell_overwrite_ok=True
                    j+=1
            i+=1
        book.save("bokewangzhi.xls")
        print("导出成功!")
        print("等待一分钟之后再次爬取数据!")
        print('%d',count)
        time.sleep(60)
    except Exception as e:
     print("出现异常------异常信息:"+repr(e));
     os.system('python pachong3.py') #启动dos
    except urllib.error.HTTPError:
     print('urllib.error.HTTPError')
     time.sleep(60)
    except urllib.error.URLError:
     print('urllib.error.URLError')
     time.sleep(60)



    

opener.open(sss['href'])

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用python-docx库来获取word文档的标题序号。首先需要安装python-docx库,然后使用下面的代码: ```python import docx doc = docx.Document('your_document.docx') for para in doc.paragraphs: if para.style.name.startswith('Heading'): level = int(para.style.name.replace('Heading', '')) print(f'标题{level}: {para.text}') ``` 这段代码会打印出文档中所有的标题及其序号。 ### 回答2: Python可以使用python-docx库来获取Word文档的标题序号。 首先,我们需要使用pip命令安装python-docx库。在命令提示符中输入以下命令: ``` pip install python-docx ``` 安装完成后,我们可以编写Python代码来获取Word文档的标题序号。下面是一个示例代码: ``` from docx import Document def get_heading_number(doc): headings = [] for paragraph in doc.paragraphs: if paragraph.style.name.startswith('Heading'): level = int(paragraph.style.name[7:]) text = paragraph.text headings.append((level, text)) return headings # 打开Word文档 doc = Document('example.docx') # 获取标题序号 headings = get_heading_number(doc) # 打印标题序号 for heading in headings: level, text = heading print('Level {}: {}'.format(level, text)) ``` 在这个示例代码中,我们首先定义了一个名为`get_heading_number`的函数,该函数接受一个`doc`参数,即一个打开的Word文档对象。然后,我们通过遍历文档中的段落,判断段落的样式是否是标题样式,如果是,则将标题级别和文本内容添加到一个列表中。最后,返回这个列表。 在主程序中,我们首先打开一个Word文档,然后调用`get_heading_number`函数来获取标题序号,并将结果打印出来。这样就可以获取Word文档中的标题序号了。 需要注意的是,这个示例代码假设标题样式的命名规则为"HeadingX",其中X表示标题级别。如果你的标题样式命名规则不同,需要适当修改代码中的判断条件。另外,这个代码只能获取嵌套级别不超过9的标题序号。如果有多于9个嵌套级别的标题,需要适当修改代码。 ### 回答3: 要想使用Python获取Word文档的标题序号,可以使用python-docx库。下面是一个简单的示例代码: ```python from docx import Document # 打开Word文档 file_path = 'path/to/your/document.docx' doc = Document(file_path) # 遍历所有段落 for para in doc.paragraphs: # 判断段落是否为标题 if para.style.name.startswith('Heading'): # 获取标题级别和文本内容 level = int(para.style.name.split(' ')[-1]) title = para.text # 打印标题序号和文本内容 print(f'标题{level}: {title}') # 关闭Word文档 doc.save() ``` 这段代码使用python-docx库打开指定路径的Word文档,并遍历所有段落。通过判断段落的样式名称是否以"Heading"开头,可以确定该段落是否为标题。然后,从样式名称中提取标题级别,并通过`para.text`获取标题文本内容。最后,将标题级别和文本内容打印出来。 注意:在使用之前,需要先安装python-docx库,可通过`pip install python-docx`命令进行安装。另外,需要替换`'path/to/your/document.docx'`为你的Word文档的实际路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值