操作方法:不会写代码怎么爬取恒大楼盘?你可以试试这个

优采云 发布时间: 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(&#39;#content_left&#39;)

    rank_list = items.children(&#39;.result&#39;)    if name not in str(rank_list):        return None    for index,info in enumerate(rank_list.items()):

        webname  = lambda x :name.replace(&#39;.&#39;,&#39;\.&#39;) if &#39;.&#39; in name else name        if info(rf&#39;a:contains({webname(name)})&#39;):

            ranking = index + page            if ranking == 0:

                ranking += 1

            logger.info(f&#39;{keyword}--排名在第{page//10 + 1}页,第{ranking}名&#39;)            return True</p>

  在关键词文本中,我们导入需要查询的关键词,例如留学行业的关键词

  def read_keyword():    with open(r&#39;keywords.txt&#39;,&#39;r&#39;,encoding=&#39;utf-8&#39;) as f:

<p>

        keywords = f.read().splitlines()        return keywords</p>

  接下来输入要查询的网站的地址或品牌名称,我们通过python自带的多线程线程包进行查询,提高查询效率;

  webname = input(&#39;请输入网址名称或品牌名称&#39;)    if webname == &#39;q&#39;:        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进行操作了。整体来看,小规模查询关键词的排名还是不错的。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线