Python爬虫---爬取天眼查数据(上)
来源:互联网 发布:投顾网络推广的技巧 编辑:程序博客网 时间:2024/05/02 01:20
又是女票,拿了3万多条的13年某地区的公司信息,但是三年过去了,工商局的注册信息发生了巨大变化,有的注册资本增加了,有的公司老板变多了,更有不少公司不存在了,因此,需要一份最新的信息以便于她进行使用。
原先是想用工商局网站上进行爬取的,但是发现工商局网站好多验证信息,毕竟我这Python初学咋练的,是在是怕怕啊!幸好,找到一个名为天眼查的网站,这个网站没有验证,可以直接查询,因此就拿这个网站来吧。
经过研究,发现必须要解析JavaScript才能拿到真实的数据,网上查找了下,发现使用phantomjs是比较简单的一种方式,于是就他了。
我的思路是这样的,数据是在文件中,查询后肯定有两种结果,查找成功的和查找失败的,这两种各自写在一个文件中,以便之后使用。对于成功的数据,继续对其查找联系方式,注册资金,开业状态等等需要的数据。这一块应该是一个类来进行的。另外一个类,打算使用Python内置的tkinter模块,写一个简单的界面,配置这两个文件,和显示实时的查询信息的。
以下是核心的爬虫类:
class TianYanCha(object): def __init__(self, sucPath, failedPath): super(TianYanCha, self).__init__() self.fileSuc = open(sucPath, 'a') self.fileFailed = open(failedPath, 'a') self.driver = webdriver.PhantomJS(executable_path = './phantomjs2.1.1/bin/phantomjs.exe') def __del__(self): print('dle phantomjs') self.fileSuc.close() self.fileFailed.close() self.driver.quit() def setOutput(self,text): self.text = text def getCompanyByName(self, company): url = 'http://www.tianyancha.com/search?key=%s&checkFrom=searchBox' % urllib.parse.quote(company) self.text.insert('end', '开始查找公司:' + company + ' ' + url + "\r\n") self.driver.get(url) self.driver.implicitly_wait(10) spans = self.driver.find_elements_by_css_selector('span[class=\"c9 ng-binding\"]') print(self.driver.page_source) if len(spans) > 0: href = self.driver.find_elements_by_css_selector('a[class=\"query_name\"]') if len(href) > 0: result = company url = href[0].get_attribute('href') self.text.insert('end', '找到公司%s,正在查询详细信息:%s\r\n' %(company, url)) self.driver.get(url) self.driver.implicitly_wait(10) #获取公司名称 name = self.driver.find_elements_by_css_selector('div[class=\"company_info_text\"]') if len(name) > 0: infos = name[0].text.split('\n') self.text.insert('end', infos) #获取公司注册资本 regCapital = self.driver.find_elements_by_css_selector('td[class=\"td-regCapital-value\"]') if len(regCapital) > 0: result = result + " " + regCapital[0].text #获取公司注册状态 regStatus = self.driver.find_elements_by_css_selector('td[class=\"td-regStatus-value\"]') if len(regStatus) > 0: result = result + " " + regStatus[0].text self.fileSuc.write(result) self.fileSuc.write('\r') self.fileSuc.flush() self.text.insert('end', result + "\r\n") self.text.vbar.set(1, 1) else: self.text.insert('end', self.driver.page_source) else: spans = self.driver.find_elements_by_css_selector('span[class=\"c8\"]') if len(spans) > 0: self.text.insert('end', '未找到公司 %s 的相关信息\r\n' % company) self.fileFailed.write(company) self.fileFailed.write('\r') else: spans = self.driver.find_elements_by_css_selector('div[class=\"gt-input\"]') if len(spans) > 0: self.text.insert('end', '需要输入验证码了!!!!' + '\r\n') else: self.text.insert('end', '查询公司 %s 遇到错误\r\n' % company) self.fileFailed.write(' ' + company) self.fileFailed.write('\r') self.fileFailed.flush()
tkinter的界面,请见Python爬虫—爬取天眼查数据(下)tkinter和exe打包。
1 0
- Python爬虫---爬取天眼查数据(上)
- Python爬虫---爬取天眼查数据(下)tkinter和exe打包
- 爬虫-天眼查数据
- 爬取天眼查数据 附代码
- Python访问天眼查
- 【python爬虫】网贷天眼平台表格数据抓取
- 【爬虫】python selenium 爬取数据
- Python爬虫爬取NBA数据
- Python requests爬虫爬取小说数据
- Python爬虫:如何爬取分页数据?
- python爬虫爬取网页表格数据
- python爬虫 爬取淘宝网页数据
- 【Python爬虫】东方财富数据爬取
- 工商企业数据-企信宝-天眼查-企查查360度深度分布式爬虫技术破解
- 面试题爬取天眼查,公司的股东信息。json爬取。
- 【go语言爬虫】网贷天眼数据平台爬虫
- python爬虫学习(股票数据爬取)
- Python爬虫:用BeautifulSoup进行NBA数据爬取
- 迷宫问题(BFS)
- HDU5912-Fraction
- AngularJS系列之JavaScript语法
- Haskell3
- 微信小程序例子——使用action-sheet弹出小程序底部菜单
- Python爬虫---爬取天眼查数据(上)
- Android WebView 页面性能监控实现
- Python内建函数:isinstance
- Linux之——信号量
- 线程和信号
- “Problem with MergeList” or “status file could not be parsed” error when trying to do an update?
- 算法笔试题(八):用最有效的方式算出2*8等于几
- java并发模型 ExecutorService 以及Future 和Callable
- Blah数集(双指针单调队列)