【Python】爬取**查公司电话以及地址信息
码字不易,喜欢请点赞!!!
背景:其实两年前就爬了##查的很多信息,包括电话、地址等基本信息之外,还有公司的股东、专利以及对外投资等信息,但是当时的电脑没备份,代码都没了。这次山东的某个教育机构有偿找我帮爬##查公司电话以及地址信息,所以就重新爬了一下##查。
准备: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】爬取**查公司电话以及地址信息相关推荐
- python爬取并分析淘宝商品信息
python爬取并分析淘宝商品信息 背景介绍 一.模拟登陆 二.爬取商品信息 1. 定义相关参数 2. 分析并定义正则 3. 数据爬取 三.简单数据分析 1.导入库 2.中文显示 3.读取数据 4.分 ...
- python爬房源信息_用python爬取链家网的二手房信息
题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...
- python爬取boss直聘招聘信息_年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备...
原标题:年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备 前言 为什么都说程序员的薪资高,但是刚开始入职的你,薪资并不是自己想象中的那样,首先是你的工作经验不足,其次就是需要不断的 ...
- python 爬取链家数据_用python爬取链家网的二手房信息
题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...
- Python爬取豆瓣电影top250的电影信息
Python爬取豆瓣电影top250的电影信息 前言 一.简介 二.实例源码展示 小结 前言 相信很多小伙伴在学习网络爬虫时,老师们会举一些实例案例讲解爬虫知识,本文介绍的就是经典爬虫实际案例–爬取豆 ...
- 【爬虫】用Python爬取去哪儿网热门旅游信息(并打包成旅游信息查询小工具)
以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/det ...
- steam夏日促销用Python爬取排行榜上的游戏打折信息
不知不觉,一年一度如火如荼的 steam 夏日促销悄然开始了.每年通过大大小小的促销,我的游戏库里已经堆积满还未下载过的游戏.但所谓"买到就是赚到,G胖一定大亏"的想法日渐流行,指 ...
- steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息
前言 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我给大 ...
- steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息!
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 不知不觉,一年一度如火如荼的steam夏日促销悄然开始了.每年通过大大小小 ...
最新文章
- 获取系统时间精确到毫秒级C++代码实现
- python 计算机程序设计基础-零基础,没有编程和计算机基础,究竟该怎么自学python?...
- 曹国伟:看准微博做大布局 哪怕革自己的命
- 线性表C语言locate和ETget,线性表(数据结构重难点讲解)
- 多多自走棋改动_多多自走棋腾讯版
- Redis——缓存击穿、穿透、雪崩
- 【每日一题】8月27日题目精讲 Is It A Tree?
- RHQ指标的WildFly子系统
- SQL Server【三】连接查询
- 答案 石头剪刀布 编码过程 0912
- 二叉搜索树的思想,以及增删查改的实现
- 我的英语六级考试成绩
- php网站怎么对接微信群,PHP对接微信公众平台消息接口开发流程教程
- 据说学编程的计算这题不超1分钟!
- android hook 框架 ADBI 如何实现so注入
- Python教学视频(五)顺序结构练习
- 计算机桌面左侧在显示器里面,电脑屏幕显示偏左怎么解决
- R语言与数据分析—上(篇幅长,全)
- 如何快速在Mac 安装 jq 命令行 JSON 解析器
- 笑话大全API 实战项目 开心一笑app