亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【Python】爬取天眼查公司電話以及地址信息

系統 2083 0

碼字不易,喜歡請點贊!!!

背景 :其實兩年前就爬了天眼查的很多信息,包括電話、地址等基本信息之外,還有公司的股東、專利以及對外投資等信息,但是當時的電腦沒備份,代碼都沒了。這次山東的某個教育機構有償找我幫爬天眼查公司電話以及地址信息,所以就重新爬了一下天眼查。

準備 :selenium+PhatomJS或者selenium+Firefox
我這里直接用的后者selenium+Firefox

思路 爬取這部分信息的話,代碼其實不難,主要包括模擬登陸、獲得頁面網址以及抓取頁面信息。

模擬登陸
網址:https://www.tianyancha.com/login
頁面如下:
【Python】爬取天眼查公司電話以及地址信息_第1張圖片 使用selenium模擬登陸代碼:

            
              time
              
                .
              
              
                sleep
              
              
                (
              
              random
              
                .
              
              
                random
              
              
                (
              
              
                )
              
              
                +
              
              
                1
              
              
                )
              
              
browser
              
                .
              
              
                get
              
              
                (
              
              loginURL
              
                )
              
              
time
              
                .
              
              
                sleep
              
              
                (
              
              random
              
                .
              
              
                random
              
              
                (
              
              
                )
              
              
                +
              
              random
              
                .
              
              
                randint
              
              
                (
              
              
                2
              
              
                ,
              
              
                3
              
              
                )
              
              
                )
              
              
browser
              
                .
              
              
                find_element_by_css_selector
              
              
                (
              
              
                'div.title:nth-child(2)'
              
              
                )
              
              
                .
              
              
                click
              
              
                (
              
              
                )
              
              
time
              
                .
              
              
                sleep
              
              
                (
              
              random
              
                .
              
              
                uniform
              
              
                (
              
              
                0.5
              
              
                ,
              
              
                1
              
              
                )
              
              
                )
              
              
phone 
              
                =
              
               browser
              
                .
              
              
                find_element_by_css_selector
              
              
                (
              
              
                'div.modulein:nth-child(2) > div:nth-child(2) > input:nth-child(1)'
              
              
                )
              
              
phone
              
                .
              
              
                send_keys
              
              
                (
              
              zhangHao
              
                )
              
              
time
              
                .
              
              
                sleep
              
              
                (
              
              random
              
                .
              
              
                uniform
              
              
                (
              
              
                0.4
              
              
                ,
              
              
                0.9
              
              
                )
              
              
                )
              
              
password 
              
                =
              
               browser
              
                .
              
              
                find_element_by_css_selector
              
              
                (
              
              
                '.input-pwd'
              
              
                )
              
              
password
              
                .
              
              
                send_keys
              
              
                (
              
              miMa
              
                )
              
              
click 
              
                =
              
               browser
              
                .
              
              
                find_element_by_css_selector
              
              
                (
              
              
                'div.modulein:nth-child(2) > div:nth-child(5)'
              
              
                )
              
              
click
              
                .
              
              
                click
              
              
                (
              
              
                )
              
              
time
              
                .
              
              
                sleep
              
              
                (
              
              random
              
                .
              
              
                uniform
              
              
                (
              
              
                0.5
              
              
                ,
              
              
                1
              
              
                )
              
              
                +
              
              
                10
              
              
                )
              
            
          

登錄之后頁面:
【Python】爬取天眼查公司電話以及地址信息_第2張圖片 關鍵詞對應的頁面網址:https://www.tianyancha.com/search?key= + key
這里以“滴滴”為例:https://www.tianyancha.com/search?key=滴滴
頁面內容如下:
【Python】爬取天眼查公司電話以及地址信息_第3張圖片 獲取公司頁面網址
解析滴滴關鍵詞頁面HTML,獲得每個公司對應得URL。
注意 :非會員只能查看前五頁的公司信息
代碼:

            
              #獲取頁面數

              
                try
              
              
                :
              
              
    pages 
              
                =
              
               soup
              
                .
              
              
                find
              
              
                (
              
              
                'ul'
              
              
                ,
              
              class_
              
                =
              
              
                'pagination'
              
              
                )
              
              
                .
              
              
                find_all
              
              
                (
              
              
                'li'
              
              
                )
              
              
                [
              
              
                -
              
              
                2
              
              
                ]
              
              
                .
              
              
                getText
              
              
                (
              
              
                )
              
              
                .
              
              
                replace
              
              
                (
              
              
                '...'
              
              
                ,
              
              
                ''
              
              
                )
              
              
except
              
                :
              
              
    pages 
              
                =
              
              
                1
              
              
                finally
              
              
                :
              
              
                print
              
              
                (
              
              
                'pages:'
              
              
                ,
              
              pages
              
                )
              
              

def 
              
                getUid
              
              
                (
              
              soup
              
                )
              
              
                :
              
              
    urls 
              
                =
              
              
                [
              
              
                ]
              
              
    divs 
              
                =
              
               soup
              
                .
              
              
                find
              
              
                (
              
              
                'div'
              
              
                ,
              
              class_
              
                =
              
              
                'result-list sv-search-container'
              
              
                )
              
              
                .
              
              
                find_all
              
              
                (
              
              
                'div'
              
              
                ,
              
              class_
              
                =
              
              
                'search-item sv-search-company'
              
              
                )
              
              
                for
              
               div 
              
                in
              
               divs
              
                :
              
              
        urls
              
                .
              
              
                append
              
              
                (
              
              div
              
                .
              
              
                find
              
              
                (
              
              
                'div'
              
              
                ,
              
              class_
              
                =
              
              
                'header'
              
              
                )
              
              
                .
              
              
                find
              
              
                (
              
              
                'a'
              
              
                )
              
              
                [
              
              
                'href'
              
              
                ]
              
              
                )
              
              
                return
              
               urls

#非會員只能爬前五頁

              
                if
              
              
                (
              
              
                int
              
              
                (
              
              pages
              
                )
              
              
                >
              
              
                5
              
              
                )
              
              
                :
              
              
    pages 
              
                =
              
              
                5
              
              

urls 
              
                =
              
              
                [
              
              
                ]
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              pages
              
                +
              
              
                1
              
              
                )
              
              
                :
              
              
    url 
              
                =
              
              
                'https://www.tianyancha.com/search/p'
              
              
                +
              
              
                str
              
              
                (
              
              i
              
                )
              
              
                +
              
              
                '?key='
              
              
                +
              
               key
    browser
              
                .
              
              
                get
              
              
                (
              
              url
              
                )
              
              
    time
              
                .
              
              
                sleep
              
              
                (
              
              random
              
                .
              
              
                uniform
              
              
                (
              
              
                0.6
              
              
                ,
              
              
                1
              
              
                )
              
              
                +
              
              
                2
              
              
                )
              
              
    soup 
              
                =
              
              
                BeautifulSoup
              
              
                (
              
              browser
              
                .
              
              page_source
              
                ,
              
              
                'lxml'
              
              
                )
              
              
    urls
              
                .
              
              
                extend
              
              
                (
              
              
                getUid
              
              
                (
              
              soup
              
                )
              
              
                )
              
            
          

獲得企業信息
最后根據企業網頁HTML內容,解析獲取需要的信息,看頁面可以發現這里需要的電話和地址都在最上面就有。
【Python】爬取天眼查公司電話以及地址信息_第4張圖片 獲取這部分內容代碼:

            
              #這里為了避免意外每次將結果直接寫入Excel文件

              
                try
              
              
                :
              
              
                for
              
               url 
              
                in
              
               urls
              
                :
              
              
        path 
              
                =
              
               r
              
                'C:\Users\liuliang_i\Desktop\tianYanCha.xlsx'
              
              
                try
              
              
                :
              
              
            df1 
              
                =
              
               pd
              
                .
              
              
                read_excel
              
              
                (
              
              path
              
                )
              
              
        except
              
                :
              
              
            df1 
              
                =
              
               pd
              
                .
              
              
                DataFrame
              
              
                (
              
              columns
              
                =
              
              
                [
              
              
                'Company'
              
              
                ,
              
              
                'Phone'
              
              
                ,
              
              
                'Address'
              
              
                ,
              
              
                'Url'
              
              
                ]
              
              
                )
              
              
        browser
              
                .
              
              
                get
              
              
                (
              
              url
              
                )
              
              
        time
              
                .
              
              
                sleep
              
              
                (
              
              random
              
                .
              
              
                uniform
              
              
                (
              
              
                0.4
              
              
                ,
              
              
                0.8
              
              
                )
              
              
                +
              
              
                1
              
              
                )
              
              
        soup 
              
                =
              
              
                BeautifulSoup
              
              
                (
              
              browser
              
                .
              
              page_source
              
                ,
              
              
                'lxml'
              
              
                )
              
              
        company 
              
                =
              
               soup
              
                .
              
              
                find
              
              
                (
              
              
                'div'
              
              
                ,
              
              class_
              
                =
              
              
                'header'
              
              
                )
              
              
                .
              
              
                find
              
              
                (
              
              
                'h1'
              
              
                ,
              
              class_
              
                =
              
              
                'name'
              
              
                )
              
              
                .
              
              
                getText
              
              
                (
              
              
                )
              
              
        phone 
              
                =
              
               soup
              
                .
              
              
                find
              
              
                (
              
              
                'div'
              
              
                ,
              
              class_
              
                =
              
              
                'in-block sup-ie-company-header-child-1'
              
              
                )
              
              
                .
              
              
                find_all
              
              
                (
              
              
                'span'
              
              
                )
              
              
                [
              
              
                1
              
              
                ]
              
              
                .
              
              
                getText
              
              
                (
              
              
                )
              
              
        address 
              
                =
              
               soup
              
                .
              
              
                find
              
              
                (
              
              
                'div'
              
              
                ,
              
              class_
              
                =
              
              
                'auto-folder'
              
              
                )
              
              
                .
              
              
                find
              
              
                (
              
              
                'div'
              
              
                )
              
              
                .
              
              
                getText
              
              
                (
              
              
                )
              
              
        df1
              
                .
              
              loc
              
                [
              
              df1
              
                .
              
              shape
              
                [
              
              
                0
              
              
                ]
              
              
                ,
              
              
                'Company'
              
              
                ]
              
              
                =
              
               company
        df1
              
                .
              
              loc
              
                [
              
              df1
              
                .
              
              shape
              
                [
              
              
                0
              
              
                ]
              
              
                -
              
              
                1
              
              
                ,
              
              
                'Phone'
              
              
                ]
              
              
                =
              
               phone
        df1
              
                .
              
              loc
              
                [
              
              df1
              
                .
              
              shape
              
                [
              
              
                0
              
              
                ]
              
              
                -
              
              
                1
              
              
                ,
              
              
                'Address'
              
              
                ]
              
              
                =
              
               address
        df1
              
                .
              
              loc
              
                [
              
              df1
              
                .
              
              shape
              
                [
              
              
                0
              
              
                ]
              
              
                -
              
              
                1
              
              
                ,
              
              
                'Url'
              
              
                ]
              
              
                =
              
               url
        df1
              
                .
              
              
                to_excel
              
              
                (
              
              path
              
                ,
              
              index
              
                =
              
              
                0
              
              
                )
              
              
except 
              
                :
              
              
    pass

            
          

最終結果如下所示:
【Python】爬取天眼查公司電話以及地址信息_第5張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91福利一区二区在线观看 | 日韩精品视频一区二区三区 | 国产成人理在线观看视频 | 99视频一区| 欧美日本一道免费一区三区 | 久久久久青草 | 91精品自在拍精选久久 | 老太做爰xxxx视频 | 久久.com| 亚洲国产精品a一区 | 麻豆伦理 | 亚洲欧美卡通成人制服动漫 | 岛国一级毛片 | 色播久久 | 在线播放91 | 精品欧美一区二区三区在线 | 99久久综合精品免费 | 四虎4hutv永久地址公告 | 狠狠操狠狠操狠狠操 | 精品视频在线免费看 | 精品免费看 | 国产小视频在线播放 | 黑人边吃奶边扎下面激情视频 | 亚洲欧美日韩综合在线 | 亚洲精品ccc | 欧美性猛片xxxxⅹ免费 | 欧美色交 | 欧美一级特黄aaa大片 | 在线欧美激情 | 爱爱网站免费 | 美国黑人特大一级毛片 | 日韩欧美高清 | 国产a级高清版毛片 | 久久精品vr中文字幕 | 精品国产一区二区三区四 | 一本大道香蕉久在线不卡视频 | 99精品久久久久久久 | 91精品久久久久亚洲国产 | 国产精品福利在线 | 久久99在线 | 日韩毛片高清免费 |