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

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

时间:2024-01-08 11:03:27浏览次数:35  
标签:HTML 58 title 爬虫 C语言 content json html proxy

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

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

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&51cto)
    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秒再进行下一次爬取。

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

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


标签:HTML,58,title,爬虫,C语言,content,json,html,proxy
From: https://blog.51cto.com/u_13488918/9140215

相关文章

  • Lua网络爬虫实战:使用http服务器获取虾皮商品信息的全过程
    这段Lua代码是一个简单的爬虫示例,使用了Lua中的http模块进行网络请求,并设置了代理信息。以下是对代码的一些解释和注意事项:安装http模块:luarocksinstallhttp这个命令用于安装Lua的http模块,以便在程序中使用HTTP请求功能。代理设置:localproxy_host="www.duoip.cn......
  • 基于Go语言的简单网络爬虫示例:获取智联招聘网页内容
    发起HTTP请求:使用Go的net/http包发起HTTP请求以获取网页内容。解析HTML内容:使用HTML解析器(如Go的golang.org/x/net/html包)来解析网页内容,找到你感兴趣的信息。提取目标数据:通过使用正则表达式或者更好的选择是HTML解析库来提取所需信息。存储或处理信息:将提取的信息存储到文件、数......
  • 【C语言】函数栈帧的创建和销毁
    1、什么是函数栈帧我们在写C语言代码的时候,经常会把一个独立的功能抽象为函数,所以C程序是以函数为基本单位的。那函数是如何调用的?函数的返回值又是如何待会的?函数参数是如何传递的?这些问题都和函数栈帧有关系。函数栈帧(stackframe)就是函数调用过程中在程序的调用栈(callstack)所......
  • Python 爬虫,Nendo 网站作品信息采集爬虫源码!
    简单的网站写爬虫就跟流水线加工一样,抄抄改改,没有问题就直接上了,直接了当省事,又是一篇没有营养的水文。一个比较简单的爬虫,适合练手学习使用,主要是爬取和采集网站的作品信息,包括标题、内容及图片,其中图片采用了多线程爬取。考虑到外网爬取,所以采用了三次访问超时重试的机制,同时对于......
  • 通讯录(动态增长版本)——《初学C语言第52天》
    contact.h////此通讯录为静态的版本(设置多少量就是多少,量的大小无法调整)////动态版本:需要多少就给多少,不够用了就开辟新空间,多了就自动减少////文件版本:动、静两种只要退出通讯录,保存的信息就消失了,而文件版本会依旧保存#define_CRT_SECURE_NO_WARNINGS1#define MAX100#define......
  • 动态内存管理:malloc free——《初学C语言第50天》
    //////——————1.动态内存管理(内存空间)////共四个函数:malloc free calloc realloc////1.为什么存在动态内存分配////我们已经掌握的内存开辟方式有:////intval=20;//在栈空间上开辟四个字节////chararr[10]={0};//在栈空间上开辟10个字节的连续空间////......
  • 联合union——《初学C语言第49天》
    //////————联合:union////1.联合的定义////联合也是一种特殊的自定义类型//#include<stdio.h>//unionUn//Un为联合标签//{// inta;// charc;//};//structSt//{// inta;// intb;//};//intmain()//{// unionUnu;// printf("%d\n",sizeof(u));//4// printf("%p\n",&am......
  • qt c语言双三次线性插值
    用chatgpt生成的测试了比较卡for(inty=0;y<enlargedHeight;y++){for(intx=0;x<enlargedWidth;x++){//计算原始图像中对应的浮点坐标floatoriginalX=(float)x/(float)enlar......
  • C语言学习随笔-05 变量
    变量:其值在其作用域内可以改变的量交变量,变量在使用前必须定义,每一个变量都有地址。1、变量的命名    ● 变量名由大小写字母、数字和下划线组成,必须以大小写字母或下划线开头,不能以数字开头。    ● C中也允许定义各种其它类型的变量,如枚举、指针、数组、结构体......
  • C语言学习随笔-04 数据类型
    C中的数据类型:在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。常用的四中基本数据类型:int、char、float、double    ▶基本类型:它们是算术类型,如int、char、float、double。 ......