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

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

Python Wangyeyu2015 6384℃ 25评论

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

运行如下:

爬到数据如下:

源码如下:

#-*- 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)
发表我的评论
取消评论
表情
(25)个小伙伴在吐槽
  1. only suribet apps. please click.
  2. Thank you for every other informative blog.
  3. Thank you for every other informative blog.
  4. 哥哥这个将自己的cookie放到26行,自己的cookie是指啥呀;而且这个运行有什么前提条件吗?比如需不需要打开网页啊;还有就是跑完了的excel是存放在哪里的呀
    匿名2022-04-16 17:46 回复
  5. New app here. We are legend !
  6. diş küçültme tedavisi hakkında detaylı bilgi veren bir sitedir
    diş küçültme2022-04-08 22:34 回复
  7. First of all, thank you for writing such an article. every word is full of knowledge
  8. First of all, thank you for writing such an article. every word is full of knowledge
  9. First of all, thank you for writing such an article. every word is full of knowledge
    kas kiralik villa2022-04-05 14:45 回复
  10. Aw, this was an extremely nice post. Finding the time and actual effort to generate a really good article… but what can I say… I hesitate a lot and never manage to get nearly anything done.
    匿名2022-02-11 08:52 回复
  11. [url=http://gameclub2u.com/youwin/]Youwin[/url] petux228
    匿名2022-01-26 21:48 回复
  12. “See this; see this. “His father says. “This is where power comes from.”
    匿名2022-01-25 16:59 回复
  13. The now lukewarm water streams through the curls of his hair rinsing away the last vestiges of the soapy lather. It all goes down the drain in a swirl of bubbles.
    匿名2022-01-25 16:20 回复
  14. “Once you plant that cock of yours in some squirmy hole and empty those warm balls of yours into a moist wet hole. Then you are on your way to becoming a man, and only then will you, come-of-age. But it is only a step onto the winding pathway towards manhood. It is my job to teach you what it means to be a man.” His father stands as he finishes his sentence. Loosening his belt and pulling his shirt out from the tucked confines of his pants.
    匿名2022-01-22 16:45 回复
  15. Garrett picks up the pee-stained and cum-leaked jock from the tile floor.
    匿名2022-01-22 01:13 回复
  16. He does not answer but tilts his head down in an almost subservient nature to his father.
    匿名2022-01-22 00:54 回复
  17. He does not say anything in response to his father as his cock continues pulsing and jumping as the blood engorges his youthful cock more. And more.
    匿名2022-01-21 18:27 回复
  18. Daddy smiled and said, “ that is my good boy. Don’t even want to leave your daddy’s Ripe socks on the floor. That’s the respect I love boy.” I then was told to clean his left foot. “Scrub these whitish paste out in my toenails. I want you to smell and place them in your mouth and let me see.” Daddy commented. It smelled and tasted like Brie cheese. Then I moved my tongue in between daddy’s toes. I cleaned up so well. Just thought I was finished. Daddy said,” the sole is clammy. It has nature feet oil after a whole day in the shoes, you think you finished fag. Keep working on that.”
    匿名2022-01-21 18:08 回复
  19. Top site News
    匿名2022-01-08 23:14 回复
  20. Лидер форекс-индустрии компания TeleTrade (ТелеТрейд) появилась на рынке в 1994 году, но 2018 году вынуждена была прекратить свое существование в РФ по причине аннулирования лицензии Банком России. У регулятора накопилось слишком много претензий к компании, о чем ее руководство неоднократно предупреждалось. Сейчас инвесторы со всего мира пользуются услугами, открывая счета через ее офшорные подразделения. Каким образом лишение генеральной лицензии в России повлияло на качество услуг крупнейшего форекс-брокера – постараемся разобраться далее в нашем информационном материале с обязательным обзором отзывов о TeleTrade. В Беларуси – НБРБ (лицензия №3 от 12.05.2016 года) Доходность Все зависит от сделки и опыта трейдера. По некоторым обещают до 400% в год. Но, чтобы «дорасти» до такого уровня нужно вложить немало денег в самом начале и непрерывно обучаться. Выплаты Регулярные на банковские карты Visa и MasterCard, через электронные платежные системы Skrill, Neteller, Fasapay, QIWI, WebMoney, Яндекс.Деньги,а также банковским переводом. Контакты Электронная почта для связи: Телефон: 8-800-200-31-00 Юридический адрес: Teletrade D.J. Limited20599 IBC 2012 First Floor, First St. Vincent Bank Ltd Building James Street, Kingstown St. Vincent and the Grenadines Условия для инвесторов Для трейдеров компании TeleTrade доступны самые популярные инструменты рынка-форекс: валюты, металлы, акции, сырье, индексы, энергоресурсы и криптвалюты. Начать торги можно с минимального депозита в размере 10 долларов США. У каждого из клиентов есть возможность выбрать тип счета с исполнением Instant или Market Execution. Размер спреда составляет от 0.2 пунктов. Кредитное плечо – 1:500. ТелеТрейдпредлагает своим клиентам классические терминалы МТ4, МТ5, а так же мобильную версию сервиса для торговли на рынке форекс. Для привлечения новых трейдеров форекс-брокер TeleTrade регулярно проводит обучение, акции и предлагает множество бонусов. Кроме того, они могут воспользоваться опцией «Синхронная торговля», которая позволяет копировать успешные финансовые сделки. Официальный сайт Сайт финансового брокера TeleTrade сделан качественно и довольно информативный. Есть возможность узнать историю компании и познакомиться с ее достижениями. Правда, если знать, что в России ТелеТрейд лишили лицензии, то возникают вопросы об отсутствии этой информации в официальных данных. Приятно, что сервис по IP устройства распознает, из какой страны посетитель сайта и тут же предлагает ему подходящий инструментарий. Но, когда обращаешь внимание на контактные данные брокера, то приходит понимание, что обратную связь с ним будет сложно поддерживать. От этого к сервису возникает недоверие. Кроме того, негативно на решение посетителя сайта компании TeleTrade может повлиять отсутствие отзывов ее клиентов. Понятно, что за время своей работы на рынке форекс с 1994 года за этим брокером закрепилось устойчивое положение лидера, однако «живых», настоящих отзывов и комментариев сайту 100% не хватает. Признаки мошенничества Отзыв лицензии Банком России У компании ТелеТрейд нет лицензии ЦБ РФ. Вернее, ее отозвали после обысков и задержания руководства. Тогда, когда брокер проработал официально на рынке форекс в России всего два года. Сведений о том, что лицензия была аннулирована на официальном сайте компании нет. Поэтому стоит изначально задуматься над вопросом: почему регулятор так поступил и безопасно ли на платформе TeleTrade начинать торги. Деятельность компании через офшоры Отзыв лицензии у ТелеТрейд спровоцировал уход компании в офшоры, где не нужно платить налоги и перед кем-то отчитываться. Так или иначе, в 26 странах мира есть представительства TeleTrade, но практически везде нелегально. Наличие скрытых комиссий Выявлено два скрытых комиссионных сбора: сбор за пополнение счета и вывод средств. Кроме того, TeleTrade взимает комиссию за совершение операций по счетам Professional и Sharp ECN. Также брокер ТелеТрейд берет вознаграждение за перенос финансовой сделки. Безопасность счетов В связи с отзывом лицензии, ТелеТрейд получил прописку в офшорах Сент-Винсент и Гренадины. Это ставит под сомнение безопасность средств на счетах трейдеров. Хотя, брокер заверяет, что двухуровневая защита и смс-подтверждение более, чем эффективны. Настойчивость менеджеров Менеджеры компании TeleTrade для того, чтобы привлечь новых клиентов на онлайн-платформу при звонке могут вести себя некорректно, проявляя настойчивость и подталкивая «новичка» к открытию депозита. Одним из показателей надежности брокера являются отзывы его трейдеров. Если они в большинстве своем отзываются хорошо, то опасаться нечего. Однако многие подмечают, что деятельность TeleTrade со временем стала увядать, а информация на сайте о признании во всем мире не заслуживает доверия. Как уже отмечалось ранее, отзыв лицензии и отток трейдеров негативно сказался на сегодняшнем положении дел в компании TeleTrade. Условия пользования онлайн-платформой для торгов на рынке форекс часто меняются не от хорошей «жизни». Немало отзывов о том, что сейчас компания TeleTrade проводит агрессивную рекламу на привлечение новых трейдеров, но в то же время, заинтересована не выдавать им заработанные на торгах деньги. Неоднократно трейдеры компании TeleTrade жалуются на зависание терминалов. При этом от техподдержки нет никакого толку, так же, как и от персонального менеджера. Таким образом, складывается впечатление, что брокер занимается привлечением средств от клиентов и вовсе не заинтересован отдавать им заработанные деньги. Множество клиентов в один голос говорят о том, что испытывают давление от менеджеров компании TeleTrade. Они обещают большую доходность буквально с первых торгов. Однако сейчас, благодаря интернету, от людей невозможно скрыть реальное положение дел в TeleTrade. Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев. Работаем      Пoкa тaк мoгy cкaзaть — вce нрaвится в цeлoм у мoего брoкeрa. Пo тaрифaм я мoгу cрaвнивaть, так кaк знaю примeрныe цeны нa тe жe ycлyги y дрyгих брoкeрoв — тyт бoлee мeнee. Koмиccия тeрпимaя. В ocтaльнoм oсoбыx прoблeм пoкa нe виднo, ecли нe cчитaть, чтo oдин рaз вывoдили неcкoлькo чacoв мoй прoфит. Дocтyчaлся и вce пришлo. ТелеТрейд мошенники!      Оооооочень сомнительная компашка! Профессиональные инвесторы говорят, что ТелеТрейд вообще не дает выводить деньги, не то, что прибыль, свои останутся у них, потому что в данном случае — ЭТО ИХ ПРИБЫЛЬ! Заработок, другими словами. Терминал не дает выводить сделки на реальный рынок и получается трейдер видит перед своими глазами фикцию. А если отобрали лицензию, значит так оно и есть и сегодня ТелеТрейд — ОБЫЧНАЯ ФИНАНСОВАЯ ПИРАМИДА! Будьте аккуратны будущие и нынешние финансисты! мeня пopадoвaли      Ecли пpoйти пo бpoкepaм, тo здecь впepвыe мeня пopaдoвали. Я люблю экcпepeмeнты блaгo ecть вoзмoжнocть и дeржy cчeтa y нecкoлькиx бpoкepoв. Здecь нeмнoгo зapaбoтaл зa пaрy мeсяцeв тoргoвли и вывeли cкaжy нoрмальнo быcтpo к мoeмy oгpoмнoмy yдивлeнию. Пoxвалю кoпи ceрвиc oчeнь дaжe. Hopм. Пpобyйтe. Выводил по частям      Нe мoг вывecти деньги. Зaвeл 500, зaрaбoтaл 1000. Пocтaвил нa вывoд 1500, ждaл сyтки. Нaпиcaл в пoддeржкy, oтвeтили вывoд в тeчeнии 5 днeй, пoтoмy чтo cyммa бoльшaя. Cдeлaл oтмeнy и пocтaвил нa вывoд 500, вывeл нopмaльнo. Пo чacтям вывeл. Кopoчe бoльшyю cyммy вывecти тяжeлo.      Я выбрaл ceбe Фopeкc Oптимyм зa тo, чтo здecь мнe кoмфopтнo в oтличии oт тex плaтфopм гдe я рaбoтaл. Вoт дaжe cpaвнить иcпoлнeниe oрдeрoв c зaдepжкoй 2-3 сeкyнды, тo здecь ecли и ecть зaдeржкa тo 0,1 — 0,5. Пo вывoдy тoжe, я paбoтaл y нecкoльких бpoкeрoв 4, 5 днeй вывoдили в лyчшeм cлyчae, a тo вooбще прocто дeньги пpoпaдали. Здecь пpoфит у меня был чeрeз 4 чaca. Вce рaвнo paзница ecть и это уже гуд.      Вывoд дa, иногдa задeрживaют. Этo пocлeднee вpeмя. Рaньшe вceгда пpиxодилo вce быcтpo. Пoзaвчepa нa вывoд пocтaвил тoжe пpoждaл цeлый дeнь. Пoзвoнил в пoддepжкy, ecли дoзвoнилcя, cкaзaли кaкoй тo cбoй. Вeчeрoм дeньги пpишли, cyпep, нo мнe нe нpaвитcя чтo нaчaлo проиcxoдить, a я здecь yжe дaвнo рaбoтаю. Oбeщали иcпpaвитьcя, пocмoтpим. Теперь только микро      Moй знaкoмый paбoтaeт здecь yжe 8 лeт, paбoтaeт oн нa микpo cчeтe, и зapaбaтывaeт в cрeднeм 300 -400 дoллapoв. И нa дрyгих cчeтax я вaм cкaжy oн дaжe никoгдa рaбoтaть нe пpoбoвaл. A я вoт пoпpoбoвaл и зa нeдeлю мoй дeпo в 800 дoллapoв yшeл дaлeкo и нaвceгдa. Этo был yдap для мeня и я cнaчaлa xoтeл вooбщe yйти. Кopoчe тeпepь тoлькo нa микpo paбoтaю. Среднее исполнение.      Cpeднee иcпoлнeниe, нa нoвocтяx тoргoвaть вooбщe нe вoзмoжнo, вoлaтильнocть мaмa нe гopюй. Ho, пo тapифaм мoгy cкaзaть нe дepyт, тaк кaк знaю пpимepныe цeны нa тe жe ycлyги y дpyгих бpoкepoв. Xopoший выбop инcтpyмeнтoв. Пo пoвoдy вывoдa тo oдин рaз вывoдили дoлгo мoй пpoфит. Вceгдa былo чac мaкcимyм пo вывoдy, a тyт цeлый дeнь oтклoняют и вce, дyмaл, чтo yжe вce бyдeм пpoщaтьcя. Пocкaндaлил и вpoдe oбeщали иcпpавитьcя, пo xодy пocмoтpим.      Oткpыл вчepа opдep нa пoкyпкy зoлoтa, ocтaвил нa нoчь, и вyaля — зapaбoтaл 300 дoллapoв нe oтxoдя oт кaccы. Нe чacтo тaкoe бывaeт. C риcкaми кoнeчнo. Этo пpиятный мoмeнт. Ho ecть и другой момент. Мою заявку отклонили, начал разбираться, оказалось, что паспорт истек. Жесть. Загружал им паспорт в 24 года + 11 месяцев, а тут заставили наново перезалить. Типа что-то изменилось за два месяца… Реально никoгдa ничeгo пoдoбнoгo у меня здесь нe былo.
    匿名2021-11-03 19:25 回复
  21. Hello guys. And Bye. neversurrender 😉
    匿名2021-08-29 23:06 回复
  22. Hey! Do you know if they make any plugins to protect against hackers? I’m kinda paranoid about losing everything I’ve worked hard on. Any recommendations?
    匿名2021-08-21 20:02 回复
  23. I am regular reader, how are you everybody? This post posted at this website is genuinely fastidious.
    匿名2021-08-21 17:32 回复
  24. Hurrah! Finally I got a website from where I know how to actually obtain helpful data concerning my study and knowledge.
    匿名2021-07-31 21:56 回复
  25. 你这个能不能 实现通配符 查询?
    匿名2020-11-01 01:34 回复
隐藏
变装