国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python抓取某汽車網數據解析html存入excel示例

2019-11-25 18:36:11
字體:
來源:轉載
供稿:網友

1、某汽車網站地址

2、使用firefox查看后發現,此網站的信息未使用json數據,而是簡單那的html頁面而已

3、使用pyquery庫中的PyQuery進行html的解析

頁面樣式:

復制代碼 代碼如下:

def get_dealer_info(self):
        """獲取經銷商信息"""
        css_select = 'html body div.box div.news_wrapper div.main div.news_list div.service_main div table tr '
        #使用火狐瀏覽器中的自動復制css路徑得到需要位置數據
        page = urllib2.urlopen(self.entry_url).read()
        #讀取頁面
        page = page.replace('<br />','&')
        page = page.replace('<br/>','&')
        #由于頁面中的電話信息中使用了br換行,所以在抓取的時候會產生問題
        #問題是:如果取得一對標簽中的數據,中包含<br/>,會出現值得到br之前的數據,而后的數據將得不到,原因個人認為是解析html是會任務/>結尾標準       
        d = pq(page)
        #使用PyQuery解析頁面,此處pq=PyQuery,因為from pyquery import PyQuery as pq
        dealer_list = []
        #創建列表用于提交到存儲方法
        for dealer_div in d(css_select):
            #此處定位tr,具體數據在此標簽中的td標簽內
            p = dealer_div.findall('td')
            #此處p就是一個tr標簽內,全部td數據的集合
            dealer = {}
            #此處的字典用于存儲一個店鋪的信息用于提交到列表中
            if len(p)==1:
                #此處多哥if判斷是用于對數據進行處理,因為一些格式不符合最終數據的要求,需要剔除,這個快的代碼按需求而定
                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、最終代碼執行成功,得到了相應數據并存入excel中

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洞头县| 新竹县| 商南县| 泌阳县| 林甸县| 东城区| 灯塔市| 永嘉县| 眉山市| 宜黄县| 伊宁县| 开封市| 乌苏市| 朝阳市| 瑞安市| 莱阳市| 松滋市| 河北省| 那曲县| 平安县| 安康市| 木兰县| 洛阳市| 武川县| 赣州市| 铜鼓县| 康乐县| 宝兴县| 阜南县| 台州市| 齐齐哈尔市| 姜堰市| 钟山县| 文成县| 平江县| 迁西县| 边坝县| 渝北区| 乐山市| 梓潼县| 荔波县|