进都进来了,不顺手点赞评论么?

【原创】Python爬虫爬天眼查数据

Python Wangyeyu2015 7513℃ 441评论

这篇就不多说了,前几日搞了个爬企查查的,今日再搞一个天眼查的,希望诸位从这两份源码上学到一些东西。

运行如下:

爬到数据如下:

源码如下:

#-*- coding-8 -*-
import requests
import lxml
import sys
from bs4 import BeautifulSoup
import xlwt
import time
import urllib

def craw(url,key_word,x,new_num):
    User_Agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
    if x == 0:
        re = 'https://www.tianyancha.com/search?key='+key_word
    else:
        re = 'https://www.tianyancha.com/search/p{}?key={}'.format(x-1,key_word)
    headers = {
            'Host': 'www.tianyancha.com',
            'Connection': 'keep-alive',
            'Cache-Control': 'max-age=0',
            'Upgrade-Insecure-Requests': '1',
            'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
            'Referer': re,#'https://www.tianyancha.com/search?key=%E5%B1%B1%E4%B8%9C%20%E7%A7%91%E6%8A%80',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Cookie': r'cookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookiecookie',
            }
    try:
        response = requests.get(url,headers = headers)
        if response.status_code != 200:
            response.encoding = 'utf-8'
            print(response.status_code)
            print('ERROR')
        soup = BeautifulSoup(response.text,'lxml')
    except Exception:
        print('请求都不让,这天眼查也搞事情吗???')
    try:
        com_all_info = soup.body.select('.mt74 .container.-top .container-left .search-block.header-block-container')[0]
        com_all_info_array = com_all_info.select('.search-item.sv-search-company')
        print('开始爬取数据,请勿打开excel')

    except Exception:
        print('好像被拒绝访问了呢...请稍后再试叭...')
    try:
        for i in range(new_num,len(com_all_info_array)):
            try:
                temp_g_name = com_all_info_array[i].select('.content .header .name')[0].text    #获取公司名
                temp_g_state = com_all_info_array[i].select('.content .header .tag-common.-normal-bg')[0].text  #获取公司状态
                temp_r_name = com_all_info_array[i].select('.content .legalPersonName.link-click')[0].text    #获取法人名
                temp_g_money = com_all_info_array[i].select('.content .info.row.text-ellipsis div')[1].text.strip('注册资本:')    #获取注册资本
                temp_g_date = com_all_info_array[i].select('.content .info.row.text-ellipsis div')[2].text.strip('成立日期:')    #获取公司注册时间
                try:
                    try:
                        temp_r_phone = com_all_info_array[i].select('.content .contact.row div script')[0].text.strip('[').strip(']')    #获取法人手机号
                    except Exception:
                        temp_r_phone = com_all_info_array[i].select('.content .contact.row div')[0].select('span span')[0].text    #获取法人手机号
                except Ellipsis:
                    temp_r_phone = '未找到法人手机号'
                try:
                    try:
                        temp_r_email = com_all_info_array[i].select('.content .contact.row div script')[1].text.strip('[').strip(']')    #获取法人Email
                    except Exception:
                        temp_r_email = com_all_info_array[i].select('.content .contact.row div')[1].select('span')[1].text    #获取法人Email
                except Exception:
                    temp_r_email = '未找到法人邮箱'
    #            temp_g_desc = com_all_info_array[i].select('.content .match.row.text-ellipsis')[0].text    #获取公司备注
    
                g_name_list.append(temp_g_name)
                g_state_list.append(temp_g_state)
                r_name_list.append(temp_r_name)
                g_money_list.append(temp_g_money)
                g_date_list.append(temp_g_date)
                r_phone_list.append(temp_r_phone)
                r_email_list.append(temp_r_email)
    #            g_desc_list.append(temp_g_desc)
            except Exception:
                print(temp_g_name+"-信息不完整,>>>>跳过>>下一个")
    except Exception:
        print("这页有毒,换下一页")

if __name__ == '__main__':
    global g_name_list
    global g_state_list
    global r_name_list
    global g_money_list
    global g_date_list
    global r_phone_list
    global r_email_list
#    global g_desc_list

    g_name_list=[]
    g_state_list=[]
    r_name_list=[]
    g_money_list=[]
    g_date_list=[]
    r_phone_list=[]
    r_email_list=[]
#    g_desc_list=[]


    key_word = input('请输入您想搜索的关键词:')
    try:
        new_num = int(input('请输入您想从第几页检索:'))-1
    except Exception:
        new_num = 0
    try:
        num = int(input('请输入您想检索的次数:'))+1
    except Exception:
        num = 6
    try:
        sleep_time = int(input('请输入每次检索延时的秒数:'))
    except Exception:
        sleep_time = 5

    key_word = urllib.parse.quote(key_word)

    print('正在搜索,请稍后')

    for x in range(1,num):
        url = r'https://www.tianyancha.com/search/p{}?key={}'.format(x,key_word)
#        print(r'https://www.tianyancha.com/search/p{}?key={}'.format(x,key_word))
#        url = r'https://www.tianyancha.com/search/p2?key=%E5%B1%B1%E4%B8%9C%20%E7%A7%91%E6%8A%80'
        s1 = craw(url,key_word,x,new_num)
        time.sleep(sleep_time)
    workbook = xlwt.Workbook()
    #创建sheet对象,新建sheet
    sheet1 = workbook.add_sheet('天眼查数据', cell_overwrite_ok=True)
    #---设置excel样式---
    #初始化样式
    style = xlwt.XFStyle()
    #创建字体样式
    font = xlwt.Font()
    font.name = '仿宋'
#    font.bold = True #加粗
    #设置字体
    style.font = font
    #使用样式写入数据
    print('正在存储数据,请勿打开excel')
    #向sheet中写入数据
    name_list = ['公司名字','公司状态','法定法人','注册资本','成立日期','法人电话','法人邮箱']#,'公司备注']
    for cc in range(0,len(name_list)):
        sheet1.write(0,cc,name_list[cc],style)
    for i in range(0,len(g_name_list)):
        print(g_name_list[i])
        sheet1.write(i+1,0,g_name_list[i],style)#公司名字
        sheet1.write(i+1,1,g_state_list[i],style)#公司状态
        sheet1.write(i+1,2,r_name_list[i],style)#法定法人
        sheet1.write(i+1,3,g_money_list[i],style)#注册资本
        sheet1.write(i+1,4,g_date_list[i],style)#成立日期
        sheet1.write(i+1,5,r_phone_list[i],style)#法人电话
        sheet1.write(i+1,6,r_email_list[i],style)#法人邮箱
#        sheet1.write(i+1,7,g_desc_list[i],style)#公司备注
    #保存excel文件,有同名的直接覆盖
    workbook.save(r"D:\wyy-tyc-"+time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) +".xls")
    print('保存完毕~')

PS:运行前请将自己的cookie放到26行那里。

PPS:爬不到数据?自己手动去过一遍验证码再试试看。

PPPS:爬到的是空数据?自己去手动搜索一下看看这个词搜不搜得到。

PPPPS:最后一句了…要是觉着有用的话…请关注并收藏此链接…我嘛…刚买了几年服务器….不出意外的话,几年内都在,请关注我…拜托拜托 ~

转载请注明:夜羽的博客 » 【原创】Python爬虫爬天眼查数据

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情
(441)个小伙伴在吐槽
  1. İyi bir kafaya sahip olmak yetmez; mesele onu iyi kullanmaktır. -Rene Descɑrtes
    twitter trend topi2022-08-06 01:03 回复
  2. Engelsiz bir yol bulursanız, muhtemelen hiçbir yere gitmez. Frank A. Clark
    twitter tren2022-08-06 01:02 回复
  3. Bir kere sevdaya tutulmaya gör; ateşlere yandığının resmidir. - Cahit Sıtkı Tarancı
    twitter trend topic2022-08-06 01:02 回复
  4. İnsan aklındakilerle gündüzleri, yüreğindekiyle geceleri uğraşıyormuş. - Can Yücel
  5. Bir katre olma, kendini deniz haline getir.
    twitter trend topi2022-08-06 01:00 回复
  6. Every child is an artist. The problem is how to remain an artist once he grows up. (Her çocuk bir sanatçıdır. Sorun büyüdükleri zaman da sanatçı kalabilmektedir.) – Pablo Picasso
    twitter trend topic2022-08-06 00:59 回复
  7. İnsanlar seninle konuşmayı bıraktığında, arkandan konuşmaya başlarlar. -Pablo Neruda
    twitter trend topi2022-08-06 00:59 回复
  8. Gerçek hiçbir zaman şiddet tarafından çürütülemez. -E. Fromm
  9. Winning isn’t everything, but wanting to win is. (Kazanmak herşey demek değildir, ancak kazanmayı istemek herşeydir.) – Vince Lombardi
    twitter tren2022-08-06 00:59 回复
  10. Strive not to be a success, but rather to be of value. (Başarılı olmak için değil değerli olmak için çabala.) – Albert Einstein
    twitter trend topic2022-08-06 00:59 回复
  11. Kariyer yapmak harika! Ama soğuk gecelerde kariyerinize sarılıp yatamazsınız. - Marilyn Monroe
  12. #ozonemetaverse
    best metaverse2022-08-05 18:18 回复
  13. ağaçlaşma
    twitter tt satın2022-08-03 22:34 回复
  14. ağırlık
  15. ağılı
  16. ağır sıklet
    twitter tt satın2022-08-03 22:34 回复
  17. ağırlanmak
  18. adlar dizgesi
  19. ağınmak
  20. ağcık
    twitter tt s2022-08-03 22:34 回复
  21. Afrika
  22. ağaç
    twitter tt satın a2022-08-03 22:33 回复
  23. ad gövdesi
    twitter tt satın2022-08-03 22:33 回复
  24. afi
    twitter tt satın2022-08-03 22:30 回复
  25. adayabilme
    twitter tt satın a2022-08-03 22:29 回复
  26. adezyon kuvveti
    twitter tt satın2022-08-03 22:28 回复
  27. âdetgörmezlik
  28. afişe
    twitter tren2022-08-03 22:28 回复
  29. ağaççık
  30. ağartabilme
    twitter tt hizmetic2022-08-03 22:25 回复
  31. Gerçek Aşk Duası Yapan Hoca
  32. Firma - Şirket - Kurum - Marka tanıtımı için en etkili mecranın internet olduğunu kabul etmeyen yoktur sanırım. Firmanı hemen ekle ücretsiz dizine eklensin.
  33. Bir Kadını Kendine Aşık Etme Büyüsü
  34. Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
  35. hello thank you
    haberler2022-07-19 00:17 回复
  36. İstanbul köpek eğitimi merkezi olarak en iyi köpek eğitimi tekniklerine sahip tek çiftlik!
  37. En iyi köpek eğitim merkezi olan Antalya Dog Club ile hemen tanışç
    köpek eğitmeni2022-07-17 11:08 回复
  38. en güncel komik kedi videoları için hemen ziyaret edin.
  39. En iyi kedi ve köpek kuaförü olan Pet Kuaförü ile hemen tanışın.
    pet kuaför2022-07-14 18:20 回复
  40. Hemen Eğitmen Mura GÜNGÖR'den destek al.
  41. tavşran resimleri ve fotoğraflarına hemen göz at.
    tavşan cinsleri2022-07-14 03:13 回复
  42. hayvan galerisine hemen göz at.
    hayvan galerisi2022-07-14 02:51 回复
  43. Tavşan resimlerine hemen göz at.
  44. hayvan videolarına hemen göz at.
    hayvan videosu izle2022-07-14 02:39 回复
  45. kedi resimlerine göz at.
    hd kedi resimleri2022-07-14 02:33 回复
  46. kedi cinsleri ve kedi ırklarına hemen göz at.
    kedi ırkları2022-07-14 02:29 回复
  47. en güncel ve hd kedi resimleri
    Kedi Resimleri2022-07-14 00:23 回复
  48. En tuhaf ve en güçlü köpek cinslerine hemen göz at.
  49. En güncel ve komik köpek videolarına hemen ulaş.
    kedi videoları2022-07-13 10:52 回复
  50. En ilginç köpek cinslerine hemen göz at.
    köpek cinsleri2022-07-13 09:29 回复
  51. kedi videolarına hemen göz atmak istermisin?
  52. En güzel ve hd köpek resimlerine hemen göz at.
  53. Geciktirici eczane ürünleri ile erken boşalma problemine son vermek için sitemizi hemen incele thanks for sharing
    Geciktirici eczane2022-07-03 12:36 回复
  54. Cinsel bilgiler sitemizden cinsel ilişki hakkında tüm bilmenşz gerekenleri hemen öğrenin thanks for sharing
    Cinsel bilgiler2022-07-03 12:28 回复
  55. Cinsel sağlık ürünleri hakkında sitemizden bilgi almak için hemen tıkla thanks for sharing
    Viagra 100 mg2022-07-03 11:42 回复
  56. Cinsel ilaç ürünleri hakkında sitemizden bilgi almak için hemen tıkla thanks for sharing
    Cinsel ilaç2022-07-03 11:07 回复
  57. Ereksiyon ürünleri blog sitemizden viagra hapları kamagra jel ürünleri cialis çeşitleri hakkında bilgi almak için hemen tıkla incele thanks for sharing
    Viagra fiyatları2022-07-01 11:58 回复
  58. Geciktirici ürünler blog sitemizden erken boşalmaya çözüm sunan tüm ürünleri hemen tıkla incele thanks for sharing
  59. Bayan azdırıcı ürünler hakkında bilgi almak için hemen tıkla incele thanks for sharing
    Bayan viagrası2022-07-01 11:02 回复
  60. Sertleştirici ilaçlar viagra cialis vega hapları gibi ürünleri sitemizden hemen incele thanks for sharing
    Eczane ürünleri2022-07-01 10:55 回复
  61. Just wanna say that i really appreciate the efforts you have put in!
    匿名2022-07-01 06:01 回复
  62. asdsdsadsadsad sdsadas dasdas
    abababa2022-06-22 07:24 回复
  63. assa
    asdsadsad2022-06-22 07:13 回复
  64. Good job
    takipçi satın al2022-06-21 21:22 回复
  65. Thanks for share post
  66. Thanks for share post
    levmont2022-06-20 22:09 回复
  67. I like details for this
  68. veri nice comment...
    www2022-06-16 09:17 回复
  69. sadasdas
    asdasd2022-06-15 06:57 回复
  70. very nice comment.
    nuri2022-06-14 23:28 回复
  71. sdsdsdsadsad
    asdsad2022-06-13 20:24 回复
  72. sdsdsdsadsa
    asdsadsad2022-06-13 20:24 回复
  73. sdsdsdsadsad
    asdsads2022-06-13 20:24 回复
  74. sdsdsdsadsa
    asdsadsada2022-06-13 20:24 回复
  75. asdsdsadsda
    gggaga2022-06-13 06:22 回复
  76. worlddsss
    cabbr2022-06-13 01:41 回复
  77. dadsadsdasasdsa
    dadasss2022-06-13 00:46 回复
  78. En uygun fiyatlarla kedi kuaförü hakkında hemen bilgi al.
    Köpek Kuaförü2022-06-09 10:30 回复
  79. Hemen köpek eğitimi videoları izle.
  80. genel blog gönderil için siteyi ziyaret edebilirsiniz.
    genel blog2022-06-08 22:56 回复
  81. instagram takipçi satın almak için siteyi ziyaret edebilirsiniz.
  82. instagram beğeni almak için sitemizi ziyaret edebilirsiniz.
  83. tiktok beğeni satın alma sitesini ziyaret edebilirsiniz.
  84. instagram beğeni satın al ve instagram takipçi satın alma
  85. sdsdsadsadass
    hello dd2022-06-08 02:25 回复
  86. dsdsd
    sadsadas2022-06-08 01:32 回复
  87. hopla vv
    hoola2022-06-08 01:19 回复
  88. hello world.
    aciyo2022-06-08 01:08 回复
  89. vds satın al
    vds satın al2022-06-07 22:13 回复
  90. dolandırılmak isteyen gelsin.
  91. bahis sitesi dolandırıcısıy
    dolandırı2022-06-06 11:56 回复
  92. dolandırılmak isteyen gelsin.ız.
  93. ilelebet burada!yapabilirsiniz.
    ilelebet giriş2022-06-06 02:18 回复
  94. ilelebet burada!
    ilelebet2022-06-06 02:18 回复
  95. hello my names is tom. very nice content.
    ahahaha2022-06-05 21:55 回复
  96. vds satın al
    vds satın al2022-06-05 12:01 回复
  97. twitter trend topic satın al burada
  98. twitter trend topic
    twitter tren2022-06-05 11:44 回复
  99. twitter trend topic satın a
  100. ilelebet giriş işlemleri burada yapılır.
    ilelebet giriş2022-06-05 11:39 回复
1 2 3 4 5
隐藏
变装