操作方法:不会写代码怎么爬取恒大楼盘?你可以试试这个
优采云 发布时间: 2022-10-26 08:15操作方法:不会写代码怎么爬取恒大楼盘?你可以试试这个
大家好,我是楠楠的第四个马甲,好好生活楠楠
前几天看到群友的一条推文,爬了恒大大厦,做空间测绘。
文章 很好,但很高兴我在这里有一个更简单的方法。所以这次就介绍一个专门用来获取这类信息的工具[优采云采集器]
下载链接
这个案例和我之前发的教学视频很像,大家可以借鉴一下
数据采集
复制恒大首页【】
打开优采云采集器,粘贴链接,smart采集就可以了
软件自动识别分页和字段
但是这个好像不能识别,没关系,我们可以手动点一下
然后启动 采集
这是data采集运行界面
好了,采集就结束了,一共580条数据
然后就可以导出到excel了
数据在excel中显示如下
经纬度地址
我有两种方法。一种是调用本博主写的百度地图api。具体细节我之前已经讲过了。
第二种方法也是我之前说的,使用网站[]
两种方法的结果差不多,但要注意消除异常值和坐标变换
关于数据分析,我推荐tableau进行分析和可视化。我会在这里抱怨。mmp 2020破解版无法显示图表,2019破解版无法显示地图。
一堆博主讲完美破解,如果能长时间打开软件,就是完美破解。当我找到一个好的破解版本时,我会更新这个教程。我去,我怎么又给自己挖坑了?
教程:SEO排名工具,python简单做一个seo关键词排名查询工具
BASE_URL = 'https://www.baidu.com/s?{}'@retry(stop_max_attempt_number=3,retry_on_result=lambda x: x is None,wait_fixed=2000)def scrape_html(url): # logger.info(f'开始爬取{url}') try:
headers = Headers(headers=True).generate()
response = requests.get(url,headers=headers) if response.status_code == requests.codes.ok: # logger.info(f'抓取成功{url}')
response.encoding = 'utf-8' return response.text except:
logger.error(f'抓取失败,请重新抓取') return None
使用pyquery解析页面,获取指定网站地址或品牌名称的位置。如果页面源码中没有网站的地址和品牌名称,则直接返回None,无需继续下面的循环。如果收录地址和姓名,则执行以下循环,确定收录姓名和地址的索引号,可以通过索引号计算排名。有排名后直接返回True
def parse_html(html,page,name,keyword):
doc = pq(html)
<p>
items = doc('#content_left')
rank_list = items.children('.result') if name not in str(rank_list): return None for index,info in enumerate(rank_list.items()):
webname = lambda x :name.replace('.','\.') if '.' in name else name if info(rf'a:contains({webname(name)})'):
ranking = index + page if ranking == 0:
ranking += 1
logger.info(f'{keyword}--排名在第{page//10 + 1}页,第{ranking}名') return True</p>
在关键词文本中,我们导入需要查询的关键词,例如留学行业的关键词
def read_keyword(): with open(r'keywords.txt','r',encoding='utf-8') as f:
<p>
keywords = f.read().splitlines() return keywords</p>
接下来输入要查询的网站的地址或品牌名称,我们通过python自带的多线程线程包进行查询,提高查询效率;
webname = input('请输入网址名称或品牌名称') if webname == 'q': exit() # main(keyword,webname) keywords = read_keyword() task_join = [] for keyword in keywords: task_start = threading.Thread(target=main,args=(keyword,webname)) task_start.start() task_join.append(task_start) for j in task_join: j.join()
最后,我们将程序打包成exe,打开cmd,输入exe所在路径执行程序。执行效果如下:
通过运行程序,可以方便的查询关键词在百度上的排名信息。注意:由于多线程查询速度快,关键词不宜过多查询,否则百度会有反屏蔽措施,这里就不使用代理ip进行操作了。整体来看,小规模查询关键词的排名还是不错的。