C语言爬虫程序采集58商铺出租转让信息

news2024/9/20 20:21:35

为了找到一个好店铺好位置,往往要花费很大精力和财力过去寻找,就有有某些出租平台但是一个个查找下来也是十分麻烦,所以我利用我们的C语言基础,给大家写个商品转租的爬虫程序,让找店铺不在那么费时费力,至少获取信息比自己单个来的更容易。

在这里插入图片描述

import requests
from bs4 import BeautifulSoup
import json
import time

proxy_host = "duoip"
proxy_port = "8000"

def get_html(url, proxy_host, proxy_port):
    提取免费ip  (jshk.com.cn/mb/reg.asp?kefu=xjy&csdn)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    proxies = {
        'http': 'http://' + proxy_host + ':' + proxy_port,
        'https': 'https://' + proxy_host + ':' + proxy_port
    }
    try:
        html = requests.get(url, headers=headers, proxies=proxies)
        if html.status_code == 200:
            return html.text
        else:
            return None
    except Exception as e:
        print(e)
        return None

def parse_html(html):
    soup = BeautifulSoup(html, 'html.parser')
    title = soup.find('div', {'class': 'title'}).text
    content = soup.find('div', {'class': 'content'}).text
    return title, content

def save_to_json(content, file_name):
    with open(file_name, 'w', encoding='utf-8') as f:
        json.dump(content, f, ensure_ascii=False, indent=4)

def main():
    url = "https://bj.zufang.com/ershoufang/"
    html = get_html(url, proxy_host, proxy_port)
    if html:
        title, content = parse_html(html)
        save_to_json({"title": title, "content": content}, "data.json")
        print(f"爬取成功:{title}")
        time.sleep(10) # 等待10秒再进行下一次爬取,防止被封IP

if __name__ == '__main__':
    main()

上述代码是一个简单的爬虫程序,用于爬取58商铺出租转让信息。程序的运行步骤如下:

1、首先,我们需要导入requests库用于发送HTTP请求,BeautifulSoup库用于解析HTML页面,json库用于保存数据,以及time库用于等待一段时间。

2、然后,我们定义了一个函数get_html,用于发送HTTP请求并获取HTML页面。在这个函数中,我们首先定义了请求头和代理信息。然后,我们使用requests.get方法发送GET请求,如果请求成功,我们就返回获取到的HTML页面,否则返回None。

3、接着,我们定义了一个函数parse_html,用于解析HTML页面并提取我们需要的数据。在这个函数中,我们首先使用BeautifulSoup库解析HTML页面,然后使用find方法找到我们需要的元素,并使用text属性获取元素的文本内容。

4、然后,我们定义了一个函数save_to_json,用于保存数据。在这个函数中,我们首先打开一个文件,然后使用json.dump方法将数据保存到文件中。

5、最后,我们在main函数中定义了要爬取的URL,然后调用get_html函数获取HTML页面,如果获取成功,我们就调用parse_html函数解析HTML页面并提取数据,然后调用save_to_json函数保存数据,最后打印出爬取成功的信息,并等待10秒再进行下一次爬取。

注意:在实际运行该程序时,需要确保代理信息是有效的,否则可能无法正常爬取网页。同时,需要确保爬取的网页内容不违反相关法律法规,否则可能会引发法律问题。

其实开店最麻烦的就是店铺产品类别,店铺选址,人流量,以及产品口碑这几个方面,想必在开店前已经深思熟虑过了,所以最重要的还是店铺选址的问题,上面我通过详细的代码示例写的一个爬虫教程,让后期店铺选址效率更高。如果大家有任何问题可以留言一起讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1367540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

命令行模式的rancher如何安装?

在学习kubectl操作的时候,发现rancher也有命令行模式,学习整理记录此文。 说明 rancher 命令是 Rancher 平台提供的命令行工具,用于管理 Rancher 平台及其服务。 前提 已经参照前文安装过了rancher环境了,拥有了自己的k8s集群…

基于SSM的校园二手交易管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

使用HttpSession和过滤器实现一个简单的用户登录认证的功能

这篇文章分享一下怎么通过session结合过滤器来实现控制登录访问的功能,涉及的代码非常简单,通过session保存用户登录的信息,如果没有用户登录的话,会在过滤器中处理,重定向回登录页面。 创建一个springboot项目&#…

BSP视频教程第29期:J1939协议栈CAN总线专题,源码框架,执行流程和应用实战解析,面向车通讯,充电桩,模组通信等(2024-01-08)

视频教程汇总帖:【学以致用,授人以渔】2024视频教程汇总,DSP第12期,ThreadX第9期,BSP驱动第29期,USB实战第5期,GUI实战第3期(2024-01-08) - STM32F429 - 硬汉嵌入式论坛 …

书生·浦语大模型全链路开源体系 学习笔记 第二课

基础作业: 使用 InternLM-Chat-7B 模型生成 300 字的小故事(需截图)。熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地(需截图下载过程&#xf…

Typecho 最新XC主题 去除域名授权全解密源码

Typecho 最新XC主题 去除域名授权全解密源码 这是一款多样式主题,首页支持六种主题样式,支持Pjax优化访问速度,多种单页,如友链、说说等。评论支持表情,自定义编辑器,支持其他样式功能。该主题功能性挺高&…

【数值分析】最佳平方逼近,最佳逼近

最佳平方逼近 ∑ k 0 n W k ( f ( x k ) − ϕ ( x k ) ) 2 min ⁡ \sum_{k0}^{ n}W_k (f(x_k)-\phi (x_k))^2\min k0∑n​Wk​(f(xk​)−ϕ(xk​))2min → 节点非常多时 ∫ a b ρ ( x ) ( f ( x ) − ϕ ( x ) ) 2 d x min ⁡ \xrightarrow[]{\text{节点非常多时}} \int_…

vue3 内置组件

文章目录 前言一、过渡效果相关的组件1、Transition2、TransitionGroup 二、状态缓存组件(KeepAlive)三、传送组件(Teleport )四、异步依赖处理组件(Suspense) 前言 在vue3中 其提供了5个内置组件 Transiti…

【HarmonyOS4.0】第二篇-鸿蒙开发介绍

一、鸿蒙开发介绍 1.1.为什么要学习鸿蒙? 2019年HarmonyOS正式面世,至今鸿蒙已成长了4年,截至2023年8月,鸿蒙生态设备数量超过7亿台,已有220万开发者投入到鸿蒙生态的开发。根据Counterpoint最新数据,202…

【数据库基础】Mysql与Redis的区别

看到一篇不错的关于“Mysql与Redis的区别”的文章,转过来记录下~ 文章目录 一、数据库类型二、运行机制三、什么是缓存数据库呢?四、优缺点比较五、区别总结六、数据可以全部直接用Redis储存吗?参考资料 一、数据库类型 Redis:NOS…

uni-app如何生成骨架屏

骨架屏是页面的一个空白版本,通常会在页面完全渲染之前,通过一些灰色的区块大致勾勒出轮廓,待数据加载完成后,再替换成真实的内容。 参考效果 骨架屏作用是缓解用户等待时的焦虑情绪,属于用户体验优化方案。 生成骨…

Vue、uniApp、微信小程序、Html5等实现数缓存

此文章带你实现前端缓存,利用时间戳封装一个类似于Redis可以添加过期时间的缓存工具 不仅可以实现对缓存数据设置过期时间,还可以自定义是否需要对缓存数据进行加密处理 工具介绍说明 对缓存数据进行非对称加密处理 对必要数据进行缓存,并…

docker/华为云cce 部署nacos 2.3.0 集群模式

镜像地址 https://hub.docker.com/r/nacos/nacos-server 版本 nacos/nacos-server:v2.3.0-slim 关键环境变量 使用mysql数据源 变量值备注MODEcluster启用集群模式MYSQL_SERVICE_DB_NAME数据库名MYSQL_SERVICE_USER数据库用户名MYSQL_SERVICE_PASSWORD数据库密码SPRING_D…

线扫相机品牌汇总(国外+国内)

线扫相机品牌汇总(国外+国内) 行者 ​ 热爱生活 22 人赞同了该文章 线扫相机也叫做线阵相机,和面阵相机一样,都是重要的工业相机。 线扫相机正如其名字那样,拍照时像扫描一样,相机和被拍照物体有相对匀速运动。 Perhaps the most common example of line scan imagin…

【代码随想录算法训练营-第七天】【哈希表】454,383,15,18

454. 四数相加 II 第一遍 思路 想不出来,除了暴力解法,完全想不出来其他解法,看答案思路了…学习了两个新的方法: getOrDefault:返回指定键对应的值,如果不存在,则返回默认值containsKey&…

java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计

一、源码特点 JSP 体育馆运营管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统采用serlvetdaobean,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。 java Servlet体育馆运营管理系…

Spring 动态数据源事务处理

在一般的 Spring 应用中,如果底层数据库访问采用的是 MyBatis,那么在大多数情况下,只使用一个单独的数据源,Spring 的事务管理在大多数情况下都是有效的。然而,在一些复杂的业务场景下,如需要在某一时刻访问不同的数据库,由于 Spring 对于事务管理实现的方式,可能不能达…

基于YOLOv8全系列【n/s/m/l/x】开发构建道路交通场景下CCTSDB2021交通标识检测识别系统

交通标志检测是交通标志识别系统中的一项重要任务。与其他国家的交通标志相比,中国的交通标志有其独特的特点。卷积神经网络(CNN)在计算机视觉任务中取得了突破性进展,在交通标志分类方面取得了巨大的成功。CCTSDB 数据集是由长沙…

SkyWalking介绍和Docker环境下部署

一、Skywalking概述 1、Skywalking介绍 Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Perfo…

CentOS 7 安装私有平台OpenNebula

目录 一、配置yum源 二、配置数据库MySQL 2.1 安装MySQL 2.2 修改MySQL密码 2.3 创建项目用户和库 三、安装配置前端包 四、设置oneadmin账号密码 五、验证安装 5.1 命令行验证安装 5.2 数据存放位置 5.3 端口介绍 5.4 命令介绍 六、访问 6.1 设置语言 6.2 创建主…