日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python 爬取CSDN博客文章

系統(tǒng) 1985 0

新建一個(gè)module,用于根據(jù)用戶名來獲取文章的url

            
              #coding=utf-8
from bs4 import BeautifulSoup
import requests

#獲取博客文章數(shù)量
def get_page_size(user_name):
    article_list_url = 'https://blog.csdn.net/'+user_name
    req = requests.get(url = article_list_url)
    article_list_html = req.text
    bf = BeautifulSoup(article_list_html)
    page_list = bf.find('span', class_ = 'count')
    page_size = int(page_list.text)
    if page_size%20 > 0:
        page_size = (page_size//20+1)
    else:
        page_size = page_size//20+0
    return page_size
#獲取博客文章的url
def get_article_list(user_name):
    
    article_list_page = get_page_size(user_name)
    article_list = {}
    page_num = 1
    while page_num <= article_list_page:
        article_list_url = 'https://blog.csdn.net/'+user_name + '/article/list/' + str(page_num)
        page_num+=1
        req = requests.get(url = article_list_url)
        article_list_html = req.text
        bf = BeautifulSoup(article_list_html)
        article_list_texts = bf.find('div', class_ = 'article-list').find_all('h4')    
        #獲取博客的地址
        for article_url in article_list_texts:
            name = article_url.find('a').text.replace(' ','').replace('\n','').replace('原','').replace('轉(zhuǎn)','')
            url = article_url.find('a').get("href")
            #article_list.append(url)
            article_list[name] = url
    return article_list
if __name__ == "__main__":
    print(get_article_list('Henry_Lin_Wind'))
            
          

根據(jù)上述步驟獲取的文章url,獲取文章內(nèi)容,并保存在本地

            
              #coding=utf-8
from bs4 import BeautifulSoup
import requests
import re
import src.article_list as al

if __name__ == "__main__":
    url_list = al.get_article_list('Henry_Lin_Wind')
    for article_name in url_list.keys():
        url = url_list[article_name]
        print(article_name)
        print(url)
        req = requests.get(url)
        html = req.text
        bf = BeautifulSoup(html)
        texts = bf.find_all('div', class_ = 'htmledit_views') 
        #判斷文章是否存在
        if texts.__len__() !=0:
            #截取文章url中的文章id,生成文件名,文件類型為。txt
            filename =re.search(r'details/[0-9]+',url).group().replace('details/','')+'.txt'
            print(filename)
            with open(filename, 'a', encoding='utf-8') as f:
                f.writelines(article_name)
                f.write('\n\n')
                #循環(huán)打印文章的每一行內(nèi)容
                for content in texts[0].contents:
                    #判斷該行的內(nèi)容是否存在
                    if content != '\n' and  content != ' ':
                        text = content.find('img')
                        #判斷該行是否是img,如果是則查找并打印圖片鏈接。否則直接打印文本內(nèi)容。
                        if text != None :
                            print("image--> " + text['src'])
                            f.writelines("image--> " + text['src'])
                            f.write('\n\n')
                        else:
                            print(content.text)                           
                            f.writelines(content.text)
                            f.write('\n\n')
            print('--------------------')                    
        else:
            print("該頁面不存在")
            print('--------------------')
            
          

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 景洪市| 仙游县| 福贡县| 尖扎县| 绥江县| 永嘉县| 剑河县| 博客| 朔州市| 白山市| 阜平县| 济阳县| 嘉荫县| 天台县| 南和县| 阆中市| 芜湖县| 林芝县| 涪陵区| 都昌县| 明光市| 陆川县| 临漳县| 南木林县| 泉州市| 重庆市| 沁水县| 磴口县| 达孜县| 澄城县| 福建省| 商都县| 绥滨县| 孙吴县| 万全县| 金昌市| 高邑县| 荔浦县| 绥滨县| 泸州市| 龙南县|