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

为了找到一个好店铺好位置,往往要花费很大精力和财力过去寻找,就有有某些出租平台但是一个个查找下来也是十分麻烦,所以我利用我们的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秒再进行下一次爬取。

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图像去噪——CBDNet网络训练自己数据集及推理测试,模型转ONNX模型(详细图文教程)

CBDNet 主要由两个子网络组成:噪声估计子网络和去噪子网络。噪声估计子网络用于估计图像的噪声水平,而去噪子网络用于去除图像中的噪声。 CBDNet 的优势在于: 它采用了更真实的噪声模型,既考虑了泊松-高斯模型,还考虑…

37-数据类型,一元运算符typeof,字符串string,布尔Boolean,未定义undefined,空null,数组Array

<body><script>// 0.1加0.2不等于0.3&#xff0c;正确的运算方法如下console.log(0.10.2);var x 0.1;var y 0.2;console.log((x*10y*10)/10);</script> </body> 简单数据类型&#xff08;5种&#xff09;&#xff1a;数字number&#xff0c;字符串s…

MFC Socket和合信CTMC M266ES 运动控制型PLC通信进行数据交换

前言 1、前两篇文章通过对Snap7和S7-1200/S7-1500PLC的通信进行了详细的介绍。Snap7的优点开源性强、使用方便易于上手&#xff0c;跨平台和可移植性性强。但是Snap7也有个缺点就是只能访问PLC的DB、MB、I、Q区进行数据读写&#xff0c;不能对V区进行读写,有人说可以读写V区&am…

【Java 设计模式】23 种设计模式

文章目录 设计模式是什么计算机行业里的设计模式创建型模式&#xff08;共 5 种&#xff09;结构型模式&#xff08;共 7 种&#xff09;行为型模式&#xff08;共 11 种&#xff09; 总结 设计模式是什么 “每一个模式描述了一个在我们周围不断重复发生的问题&#xff0c;以及…

docker打包介绍

最近在做一个开源项目&#xff0c;遇到开发者问各种问题&#xff0c;发现都是系统和软件版本的差异引起的。于是了解了一下docker的使用&#xff0c;发现docker真是个好东东&#xff0c;基本解决了各种版本差异的问题&#xff0c;真正做到了一键部署使用。 先熟悉一下docker里…

c++学习:容器stack栈+queue+map(简易输入法)+deque

目录 stack 模板原型 头文件 模板的成员类型和成员对象和成员函数 栈类模板的容器对象 实例 queue 模板原型 头文件 模板的成员类型和成员对象和成员函数 队列类模板的容器对象 实例 map 模板原型 头文件 模板的成员类型和成员对象和成员函数 关联类模板的容器…

debian cups 打印机共享

apt update apt install -y cups localhost:631 add printer root 密码 添加打印机 然后在windows上设置 http://ip:631/printers/HP_LaserJet_1022

Vue3---安装路由

介绍 在Vue3项目中安装路由 示例 第一步&#xff1a;执行npm命令安装路由 npm install vue-router4第二步&#xff1a;在项目的src文件夹下创建router子文件夹 第三步&#xff1a;创建index.js和routes.js文件&#xff0c;以下为文件的代码 //通过vue-router插件实现模板…

Elementui Radio单选框取消选中

问题&#xff1a; 最近开发一个后台项目的时候用到了单选框&#xff0c;而客户的要求是默认选择一个选项&#xff0c;然后点击可以取消选中。不想自己在手写一个Radio组件&#xff0c;只能在elementui的单选框上修改一下下啦。 1. .native的作用 .native的作用是在给组件添加修…

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

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

代码随想录算法训练营第二十五天 | 216.组合总和III、17.电话号码的字母组合

216.组合总和III 题目&#xff1a; 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 思路&…

3D Surface Subdivision Methods 3D 曲面细分方法

文章目录 1 介绍2 细分法3 一个简单的例子&#xff1a;Catmull-Clark 细分4 Catmull-Clark 细化5 Refinement Host6 Geometry Policy7 四种细分方法8 示例&#xff1a;自定义细分方法9 实施历史 原文地址: https://doc.cgal.org/latest/Subdivision_method_3/index.html#Chapte…

美创科技葛宏彬:夯实安全基础,对医疗数据风险“逐个击破”

导读 解决医疗机构“临床业务数据合规流动”与“重要数据安全防护”两大难题。 2023年11月11日&#xff0c;在2023年南湖HIT论坛上&#xff0c;HIT专家网联合杭州美创科技股份有限公司&#xff08;以下简称美创科技&#xff09;发布《医疗数据安全风险分析及防范实践》白皮书…

小程序学习基础(页面加载)

打开首页&#xff0c;然后点击第一个按钮进去心得页面 进入心得页面以后 第一个模块是轮播图用的是swiper组件&#xff0c;然后就是四个按钮绑定点击事件&#xff0c;最后就是下拉刷新&#xff0c;下拉滚动&#xff0c;上拉加载。代码顺序wxml,js,wcss,json。 <!--pages/o…

Python——python编译器安装教程

1.前往python官网下载安装程序 python官网 python编译器安装程序下载网站 2.找到自己需要的版本&#xff0c;下载对应的安装程序&#xff0c;运行程序 打开安装包&#xff0c;切记要勾选add python 3.9 to PATH 可选择自动安装&#xff08;Install Now&#xff09;或点击自定义…

Intellij-idea 如何编译maven工程

在IntelliJ IDEA中编译Maven工程的过程如下所示&#xff1a; 打开IntelliJ IDEA并导入Maven工程。选择"File"&#xff08;文件&#xff09;菜单&#xff0c;然后选择"Open"&#xff08;打开&#xff09;或者"Open Project"&#xff08;打开项目…

JVM工作原理与实战(十):类加载器-Java类加载器

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、介绍 二、扩展类加载器 三、通过扩展类加载器去加载用户jar包 1.放入/jre/lib/ext下进行扩展 2.使用参数进行扩展 四、应用程序类加载器 总结 前言 ​JVM作为Java程序的运行…

WPF常用控件-Window

常用属性 这里重点记录一些关键且容易忘记的属性&#xff0c;那些很常用的如Title啥的就不在这里一一说明了。 任务栏按钮 ShowInTaskbar&#xff1a;是否在任务栏中显示应用按钮&#xff0c;默认为True。 层级 Topmost&#xff1a;应用是否始终在所有应用的最上层&#x…

MongoDB分片集群架构详解

分片简介 分片&#xff08;shard&#xff09;是指在将数据进行水平切分之后&#xff0c;将其存储到多个不同的服务器节点上的一种扩展方式。分片在概念上非常类似于应用开发中的“水平分表”。不同的点在于&#xff0c;MongoDB 本身就自带了分片管理的能力&#xff0c;对于开发…

Tensorflow2.0笔记 - 基本数据类型,数据类型转换

【TensorFlow2.0】(1) tensor数据类型&#xff0c;类型转换_tensorflow tensor转int-CSDN博客文章浏览阅读1.5w次&#xff0c;点赞8次&#xff0c;收藏28次。各位同学好&#xff0c;今天和大家分享一下TensorFlow2.0中的tensor数据类型&#xff0c;以及各种类型之间的相互转换方…