从China Webmaster上收集房地产网站排名、网址和简介
今天CX姐要求我从China Webmaster上收集排名前200名的房地产网站的排名、网址和简介以及评分信息。在完成任务之后我把程序重新优化了一下,写成了一个类,方便下次重复使用。最终的返回结果是一个pandas中的dataframe,可以写成excel。
class Rank:def __init__(self,start,end):from bs4 import BeautifulSoup from urllib import requestimport reimport pandas as pdimport numpy as npimport urllib.parse as urpimport timeimport urllib.request as urrself.limit = endself.begin = startdef __upbond__(self):if self.limit - (self.limit // 30)*30 >= 0:return (self.limit // 30)+1def __func1__(self,r1):return r1.find('a').get_text()def __func2__(self,r1):return r1.find('span').get_text()def __func3__(self,r2):return r2.find('strong').get_text()def __func4__(self,r2):return re.findall(r'\d?\d?\d?\d?',r2.find('span').get_text())[0]def __func5__(self,r1):return 'http://top.chinaz.com'+r1.find('a').get('href')def __func6__(self,url):req3 = request.urlopen(url)res3 = req3.read()bs3 = BeautifulSoup(res3,'lxml')return bs3.find_all('p',attrs={'class':'webIntro'})[0].get_text()def __scripy1__(self,num):if num == 1:url1 = 'http://top.chinaz.com/hangye/index_shenghuo_fangchang_alexa.html'return self.__scrapy2__(url1)if num > 1:url1 = 'http://top.chinaz.com/hangye/index_shenghuo_fangchang_alexa_'+str(num)+'.html'return self.__scrapy2__(url1)def __scrapy2__(self,url1):req1 = request.urlopen(url1)res1 = req1.read()bs1 = BeautifulSoup(res1,'lxml')result1 = bs1.find_all('div',attrs={'class':'CentTxt'} )result2 = bs1.find_all('div',attrs = {'class':'RtCRateCent'})arr1 = pd.Series(result1)arr2 = pd.Series(result2)df = pd.DataFrame([],columns=['name','web','rank','score','web2'])df['name'] = arr1.apply(self.__func1__)df['web'] = arr1.apply(self.__func2__)df['rank'] = arr2.apply(self.__func3__)df['score'] = arr2.apply(self.__func4__)df['web2'] = arr1.apply(self.__func5__)return dfdef __scrapy3__(self):final_df = pd.DataFrame([],columns=['name','web','rank','score','web2'])start_page = self.begin // 30for i in np.arange(start_page,self.__upbond__()+1):final_df = pd.concat([final_df,self.__scripy1__(i)],ignore_index=True)return final_dfdef scrapy(self):df = self.__scrapy3__()df['intro'] = np.nandf['intro'] = df['web2'].apply(self.__func6__)return df
从China Webmaster上收集房地产网站排名、网址和简介相关推荐
- Google、微软、阿里、腾讯、百度这些大公司在GitHub上开源投入排名分析 | CSDN原力计划...
扫码参与CSDN"原力计划" 作者 | 村中少年 来源 | CSDN原力计划获奖作品 现在有越来越多的公司都参与了开源,其背后有各自的目的所在,姑且不予讨论.本文是从多个方面分析各 ...
- 转]网络上收集的Visual Studio 2008的一些小技巧
[转]网络上收集的Visual Studio 2008的一些小技巧 标签: 电脑 visual 光标 ide 高亮 杂谈 分类: 学习 1,Visual Studio 2008自带的1000多个 Wi ...
- 浙江嘉兴计算机学校排名,嘉兴计算机考研线上课程实力排名
嘉兴计算机考研线上课程实力排名 冲刺分清主次现在各科的复习已经进入**后的收尾工作了,现在基本上就是扫除知识盲区,进行知识点的查缺补漏非法学法律硕士考研报考条件 而且,妥协次就会有第二次,所以一开始就 ...
- 线上写代码的网址 jsbin
线上写代码的网址 jsbin JS Bin - Collaborative JavaScript Debugging
- 各大公司在GitHub上开源投入排名分析
现在有越来越多的公司都参与了开源,其背后有各自的目的所在,姑且不予讨论.本文是从多个方面分析各大公司在开源上的投入情况.由于全世界绝大多数的开源项目都有发布到Github上,因此本文将会基于GitHu ...
- 西北农林科技大学与陕西师范大学计算机,陕西师大比较稳定!如何看待陕西19校在四大排行榜上的综合排名!...
国内有四个比较知名的大学排行榜,分别是金苹果.校友会.武书连.软科,虽然各个榜单所侧重的点不一样,社会口碑也是褒贬不一,但是,存在即合理,如果把各个榜单的排名换算成一个平均值,考虑的综合指标就比较多了 ...
- GitHub上收集的最全的前端资源汇总(包括前端学习、求职、开发资源)
http://www.imooc.com/article/12645 个人结合github上各位大神分享的资源进行了简单的汇总整理,每一个条目下面都有丰富的资料,是前端学习.工作的好帮手. 项目地址: ...
- chatgpt不好使?那是你不会问,github上收集的100多种问法,让你快速玩转chatgpt
你觉得没什么可用,是因为你不会用 github上大牛门收集的一百多种问法,快去试试吧 原文地址:https://github.com/f/awesome-chatgpt-prompts 由于是官方问法 ...
- 从网络上收集的爬虫工具,推荐基于python的工具
Java爬虫 1.Arachnid Arachnid是一个基于Java的web spider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开 ...
最新文章
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?...
- C#教程3:基本语言结构
- 【python】【scrapy】使用方法概要(三)
- 04_css盒子模型
- “Replit 威胁我,要求我关闭我的开源项目!”
- IOS Emoji表情
- 计算机设计大赛西北地区赛,我校学生在中国大学生计算机设计大赛西北地区赛中获佳绩...
- 使用 FUSE 开发自己的文件系统
- Ubuntu安装完驱动后进不去界面
- 安拆网:脚手架钢管规格及施工要求
- OOK调制解调的FPGA实现,求Verilog代码
- vm linux安装增强功能,VirtualBox虚拟机CentOS安装增强功能Guest Additions(示例代码)
- 知道一个公司的网站地址,怎么快速获取邮箱。
- luat驱动LCD屏幕
- 百鸡问题扩展-N鸡问题
- 82.android 简单的当前运行内存清理
- Netty入门与实战:仿写微信IM即时通讯系统
- Java中amp;amp;和amp;以及||和|的区别
- could not locate named parameter [***]; nested exception is org.hibernate.QueryParameterException: c
- 日常工作要想有效提高工作效率 常用的在线工具网站