python抓取某汽車(chē)網(wǎng)數(shù)據(jù)解析html存入excel示例
1、某汽車(chē)網(wǎng)站地址
2、使用firefox查看后發(fā)現(xiàn),此網(wǎng)站的信息未使用json數(shù)據(jù),而是簡(jiǎn)單那的html頁(yè)面而已
3、使用pyquery庫(kù)中的PyQuery進(jìn)行html的解析
頁(yè)面樣式:
def get_dealer_info(self):
"""獲取經(jīng)銷(xiāo)商信息"""
css_select = 'html body div.box div.news_wrapper div.main div.news_list div.service_main div table tr '
#使用火狐瀏覽器中的自動(dòng)復(fù)制css路徑得到需要位置數(shù)據(jù)
page = urllib2.urlopen(self.entry_url).read()
#讀取頁(yè)面
page = page.replace('<br />','&')
page = page.replace('<br/>','&')
#由于頁(yè)面中的電話信息中使用了br換行,所以在抓取的時(shí)候會(huì)產(chǎn)生問(wèn)題
#問(wèn)題是:如果取得一對(duì)標(biāo)簽中的數(shù)據(jù),中包含<br/>,會(huì)出現(xiàn)值得到br之前的數(shù)據(jù),而后的數(shù)據(jù)將得不到,原因個(gè)人認(rèn)為是解析html是會(huì)任務(wù)/>結(jié)尾標(biāo)準(zhǔn)
d = pq(page)
#使用PyQuery解析頁(yè)面,此處pq=PyQuery,因?yàn)閒rom pyquery import PyQuery as pq
dealer_list = []
#創(chuàng)建列表用于提交到存儲(chǔ)方法
for dealer_div in d(css_select):
#此處定位tr,具體數(shù)據(jù)在此標(biāo)簽中的td標(biāo)簽內(nèi)
p = dealer_div.findall('td')
#此處p就是一個(gè)tr標(biāo)簽內(nèi),全部td數(shù)據(jù)的集合
dealer = {}
#此處的字典用于存儲(chǔ)一個(gè)店鋪的信息用于提交到列表中
if len(p)==1:
#此處多哥if判斷是用于對(duì)數(shù)據(jù)進(jìn)行處理,因?yàn)橐恍└袷讲环献罱K數(shù)據(jù)的要求,需要剔除,這個(gè)快的代碼按需求而定
print '@'
elif len(p)==6 :
strp = p[0].text.strip()
dealer[Constant.CITY] = p[1].text.strip()
strc = p[2].text.strip()
dealer[Constant.PROVINCE] = p[0].text.strip()
dealer[Constant.CITY] = p[1].text.strip()
dealer[Constant.NAME] = p[2].text.strip()
dealer[Constant.ADDRESSTYPE] = p[3].text.strip()
dealer[Constant.ADDRESS] = p[4].text.strip()
dealer[Constant.TELPHONE] = p[5].text.strip()
dealer_list.append(dealer)
elif len(p)==5:
if p[0].text.strip() != u'省份':
dealer[Constant.PROVINCE] = strp
dealer[Constant.CITY] = p[0].text.strip()
dealer[Constant.NAME] = p[1].text.strip()
dealer[Constant.ADDRESSTYPE] = p[2].text.strip()
dealer[Constant.ADDRESS] = p[3].text.strip()
dealer[Constant.TELPHONE] = p[4].text.strip()
dealer_list.append(dealer)
elif len(p)==3:
print '@@'
print '@@@'
self.saver.add(dealer_list)
self.saver.commit()
4、最終代碼執(zhí)行成功,得到了相應(yīng)數(shù)據(jù)并存入excel中
相關(guān)文章
keras 讀取多標(biāo)簽圖像數(shù)據(jù)方式
這篇文章主要介紹了keras 讀取多標(biāo)簽圖像數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06對(duì)pyqt5中QTabWidget的相關(guān)操作詳解
今天小編就為大家分享一篇對(duì)pyqt5中QTabWidget的相關(guān)操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06使用Python開(kāi)發(fā)一個(gè)Word文檔批量合并工具
我們經(jīng)常需要將多個(gè)Word文檔合并成一個(gè)完整的文檔,無(wú)論是整理項(xiàng)目報(bào)告、匯編會(huì)議紀(jì)要,還是制作培訓(xùn)材料,手動(dòng)復(fù)制粘貼不僅效率低下,還容易出錯(cuò),今天,我將分享如何使用Python開(kāi)發(fā)一個(gè)功能完善的Word文檔批量合并工具,需要的朋友可以參考下2025-05-05Python?Traceback(most?recent?call?last)報(bào)錯(cuò)信息:示例解讀
這篇文章主要介紹了Python?Traceback(most?recent?call?last)報(bào)錯(cuò)信息:示例解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12淺談python為什么不需要三目運(yùn)算符和switch
下面小編就為大家?guī)?lái)一篇淺談python為什么不需要三目運(yùn)算符和switch。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06PyTorch 中的 torch.utils.data 解析(推薦)
這篇文章主要介紹了PyTorch?torch.utils.data.Dataset概述案例詳解,主要介紹對(duì)?torch.utils.data.Dataset?的理解,需要的朋友可以參考下2023-02-02一文帶你了解Python 四種常見(jiàn)基礎(chǔ)爬蟲(chóng)方法介紹
這篇文章主要介紹了一文帶你了解Python 四種常見(jiàn)基礎(chǔ)爬蟲(chóng)方法介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python爬蟲(chóng)谷歌Chrome F12抓包過(guò)程原理解析
這篇文章主要介紹了Python爬蟲(chóng)谷歌Chrome F12抓包過(guò)程原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06