S01E07.智能翻頁和批量下載文件【京客隆超市】

當(dāng)前存在問題

在下載完財(cái)務(wù)資料的部分之后,在公告及通告專欄部分開始進(jìn)行循環(huán)下載。
觀察數(shù)據(jù)發(fā)現(xiàn):本程序僅下載了專欄子頁非1的專欄,專欄頁面數(shù)為1的,都進(jìn)行了跳過。
程序可能存在問題:
1)正則表達(dá)式的書寫存在問題;2)“尾頁”部分的IF條件判斷語句存在一些問題。

import requests
from lxml import etree
import re
import os
網(wǎng)址 = 'http://www.jkl.com.cn/newsList.aspx?TypeId=10009'
UA偽裝 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
proxies={
    'http':XXX@XXXX',
    'https':'XXX@XXXX'
    }
# 1.拿各項(xiàng)目的鏈接
響應(yīng)數(shù)據(jù) = requests.get(url=網(wǎng)址,headers=UA偽裝,proxies=proxies,verify=False).text
解析 = etree.HTML(響應(yīng)數(shù)據(jù))
項(xiàng)目名稱 = 解析.xpath('//div[@class="infoLis"]//a/text()')
項(xiàng)目鏈接 = 解析.xpath('//div[@class="infoLis"]//@href')
項(xiàng)目名稱 = [項(xiàng)目名稱.strip() for 項(xiàng)目名稱 in 項(xiàng)目名稱]
項(xiàng)目鏈接 = ['http://www.jkl.com.cn/'+項(xiàng)目鏈接 for 項(xiàng)目鏈接 in 項(xiàng)目鏈接]
字典1 = dict(zip(項(xiàng)目名稱,項(xiàng)目鏈接))
for 項(xiàng)目名稱,項(xiàng)目鏈接 in 字典1.items():
    項(xiàng)目名稱 = 項(xiàng)目名稱.replace('/','.')
    項(xiàng)目名稱 = 項(xiàng)目名稱.replace('...', '')
    路徑 = 'd:/' + 項(xiàng)目名稱
    if not os.path.exists(路徑):
        os.mkdir(路徑)
    else:
        響應(yīng)數(shù)據(jù) = requests.get(url=項(xiàng)目鏈接,headers=UA偽裝,proxies=proxies,verify=False).text
        解析 = etree.HTML(響應(yīng)數(shù)據(jù))
        尾頁 = 解析.xpath('//a[text()="尾頁"]/@href')
        if 尾頁 != []:
            正則 = re.search('\d{1,4}',尾頁[0])
            頁數(shù) = 正則.group(0)
            print(頁數(shù))
        else:
            頁數(shù) = 1
        for 頁數(shù) in range(1,int(頁數(shù))+1):
            響應(yīng)數(shù)據(jù) = requests.get(url=項(xiàng)目鏈接,headers=UA偽裝,proxies=proxies,verify=False).text
            解析 = etree.HTML(響應(yīng)數(shù)據(jù))
            文件名稱 = 解析.xpath('//div[@class = "newsLis"]//li/a/text()')
            文件鏈接 = 解析.xpath('//div[@class = "newsLis"]//li//@href')
            文件名稱 = [文件名稱.strip() for 文件名稱 in 文件名稱]
            if all(文件鏈接):
                文件鏈接 = ['http://www.jkl.com.cn'+文件鏈接 for 文件鏈接 in 文件鏈接]
                字典2 = dict(zip(文件名稱,文件鏈接))
                for 文件名稱,文件鏈接 in 字典2.items():
                    文件名稱 = 文件名稱.replace('/', '.')
                    響應(yīng)數(shù)據(jù) = requests.get(url=文件鏈接,headers=UA偽裝,proxies=proxies,verify=False).content
                    后綴 = 文件鏈接.split('.')[-1]
                    文件路徑 = 路徑 + '/' +  文件名稱 + '.' + 后綴
                    # print(文件路徑)
                    with open(文件路徑,"wb") as 變量名:
                        變量名.write(響應(yīng)數(shù)據(jù))
                        print(文件名稱,"下載成功?。?!")
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容