码字不易,喜欢请点赞!!!

背景:其实两年前就爬了##查的很多信息,包括电话、地址等基本信息之外,还有公司的股东、专利以及对外投资等信息,但是当时的电脑没备份,代码都没了。这次山东的某个教育机构有偿找我帮爬##查公司电话以及地址信息,所以就重新爬了一下##查。

准备:selenium+PhatomJS或者selenium+Firefox
我这里直接用的后者selenium+Firefox

思路爬取这部分信息的话,代码其实不难,主要包括模拟登陆、获得页面网址以及抓取页面信息。

模拟登陆
网址:https://www.tianyancha.com/login
页面如下:
使用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)

登录之后页面:
关键词对应的页面网址:https://www.tianyancha.com/search?key= + key
这里以“滴滴”为例:https://www.tianyancha.com/search?key=滴滴
页面内容如下:
获取公司页面网址
解析滴滴关键词页面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 = 5urls = []
for i in range(1,pages+1):url = 'https://www.tianyancha.com/search/p' + str(i) + '?key=' + keybrowser.get(url)time.sleep(random.uniform(0.6,1)+2)soup = BeautifulSoup(browser.page_source,'lxml')urls.extend(getUid(soup))

获得企业信息
最后根据企业网页HTML内容,解析获取需要的信息,看页面可以发现这里需要的电话和地址都在最上面就有。
获取这部分内容代码:

#这里为了避免意外每次将结果直接写入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'] = companydf1.loc[df1.shape[0]-1,'Phone'] = phonedf1.loc[df1.shape[0]-1,'Address'] = addressdf1.loc[df1.shape[0]-1,'Url'] = urldf1.to_excel(path,index=0)
except :pass

最终结果如下所示:

【Python】爬取**查公司电话以及地址信息相关推荐

  1. python爬取并分析淘宝商品信息

    python爬取并分析淘宝商品信息 背景介绍 一.模拟登陆 二.爬取商品信息 1. 定义相关参数 2. 分析并定义正则 3. 数据爬取 三.简单数据分析 1.导入库 2.中文显示 3.读取数据 4.分 ...

  2. python爬房源信息_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  3. python爬取boss直聘招聘信息_年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备...

    原标题:年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备 前言 为什么都说程序员的薪资高,但是刚开始入职的你,薪资并不是自己想象中的那样,首先是你的工作经验不足,其次就是需要不断的 ...

  4. python 爬取链家数据_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  5. Python爬取豆瓣电影top250的电影信息

    Python爬取豆瓣电影top250的电影信息 前言 一.简介 二.实例源码展示 小结 前言 相信很多小伙伴在学习网络爬虫时,老师们会举一些实例案例讲解爬虫知识,本文介绍的就是经典爬虫实际案例–爬取豆 ...

  6. 【爬虫】用Python爬取去哪儿网热门旅游信息(并打包成旅游信息查询小工具)

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/det ...

  7. steam夏日促销用Python爬取排行榜上的游戏打折信息

    不知不觉,一年一度如火如荼的 steam 夏日促销悄然开始了.每年通过大大小小的促销,我的游戏库里已经堆积满还未下载过的游戏.但所谓"买到就是赚到,G胖一定大亏"的想法日渐流行,指 ...

  8. steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息

    前言 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我给大 ...

  9. steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 不知不觉,一年一度如火如荼的steam夏日促销悄然开始了.每年通过大大小小 ...

最新文章

  1. 获取系统时间精确到毫秒级C++代码实现
  2. python 计算机程序设计基础-零基础,没有编程和计算机基础,究竟该怎么自学python?...
  3. 曹国伟:看准微博做大布局 哪怕革自己的命
  4. 线性表C语言locate和ETget,线性表(数据结构重难点讲解)
  5. 多多自走棋改动_多多自走棋腾讯版
  6. Redis——缓存击穿、穿透、雪崩
  7. 【每日一题】8月27日题目精讲 Is It A Tree?
  8. RHQ指标的WildFly子系统
  9. SQL Server【三】连接查询
  10. 答案 石头剪刀布 编码过程 0912
  11. 二叉搜索树的思想,以及增删查改的实现
  12. 我的英语六级考试成绩
  13. php网站怎么对接微信群,PHP对接微信公众平台消息接口开发流程教程
  14. 据说学编程的计算这题不超1分钟!
  15. android hook 框架 ADBI 如何实现so注入
  16. Python教学视频(五)顺序结构练习
  17. 计算机桌面左侧在显示器里面,电脑屏幕显示偏左怎么解决
  18. R语言与数据分析—上(篇幅长,全)
  19. 如何快速在Mac 安装 jq 命令行 JSON 解析器
  20. 笑话大全API 实战项目 开心一笑app

热门文章

  1. 配置内网IP/Linux-修改IP地址
  2. java排行榜任务积分redis_Redis 实现用户积分排行榜
  3. java中接口与接口的多继承
  4. 【Selenium无图形界面驱动浏览器最新实践版】
  5. 最全数组方法,最简单易懂,数组方法大全
  6. Command Line_Tools 下载失败问题
  7. 蓝牙运动耳机十大名牌排行,最值得入手的六款运动耳机推荐
  8. ADC_TIM_DMA
  9. Ajax技术的先进性与局限性
  10. 抖音直播间商品展示时间要怎么合理安排?