Python Spider: 爬取项目外包网站TaskCity

article/2025/9/1 18:05:34

对于想要做软件外包的小伙伴们来说,每天登陆外包网站,并且搜索合适的项目,是很累人并且十分枯燥的事情。使用Python爬虫,可以自动对外包网站上面最新的软件外包项目进行搜索、提取和保存。可以大大提高大家的工作效率。

该项目使用Python爬虫,实现对项目外包网站TaskCity的项目信息抓取。并将信息保存到Excel文件中。主要包括两部分:网页抓取信息处理

网页抓取:采用urllib抓取读取网页,使用re正则提取有用的信息。

信息处理:使用openpyxl和pandas,将信息保存到Excel文件,网址使用超链接格式。 

 Spider.py

from urllib import request
import re
import time
import random
from bs4 import BeautifulSoup
import Disposer as Dp# 定义变量:URL 与 headers
base_url = 'http://www.taskcity.com'
url = 'http://www.taskcity.com/projects?utf8=%E2%9C%93&keywords=%E4%B8%8A%E6%B5%B7&enter=%E9%A1%B9%E7%9B%AE&commit=%E6%90%9C%E7%B4%A2' #向测试网站发送请求
#重构请求头,伪装成 Mac火狐浏览器访问,可以使用上表中任意浏览器的UA信息
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:65.0) Gecko/20100101 Firefox/65.0'}data = {'名称': [],'发布时间': [],'预算': [],'链接': []}while(None != url):# 1、创建请求对象,包装ua信息req = request.Request(url=url,headers=headers)# 2、发送请求,获取响应对象res = request.urlopen(req)# 3、提取响应内容html = res.read().decode('utf-8')# 寻找HTML规律,书写正则表达式,使用正则表达式分组提取信息pattern = re.compile(r'<a title="(.*?)".*?项目发布时间:(.*?)</span><br/>.*?项目预算:(.*?)<br/>', re.S)r_list=pattern.findall(html)is_find = 0title_name = Dp.get_last_project_name("TaskCity")print(title_name)for info in r_list:if (info[0] != title_name):data['名称'].append(info[0])data['发布时间'].append(info[1])data['预算'].append(info[2])data['链接'].append(url)print(info)else:print("Get the last information, name: " + info[0])is_find = 1breakif (is_find == 1):break# 每爬取一个页面随机休眠1-2秒钟的时间time.sleep(random.randint(1, 2))soup = BeautifulSoup(html, "html.parser")url = soup.find('a', attrs={'rel': 'next'})if (url != None):url = url.get('href')url = base_url + str(url)Dp.insert_data_to_sheet_head(data, "TaskCity")

Disposer.py 

import openpyxl
import pandas as pdfilename = '软件外包项目汇总.xlsx'def make_hyperlink(value):return '=HYPERLINK("%s", "%s")' % (value, "网址")def get_last_project_name(sheet_name):wb = openpyxl.load_workbook(filename)ws = wb.get_sheet_by_name(sheet_name)return ws.cell(row = 2, column = 1).valuedef insert_data_to_sheet_head(dict_data, sheet_name):# Returns a DataFramedf = pd.read_excel(filename, sheet_name)df_dict = pd.DataFrame.from_dict(dict_data)df_dict['链接'] = df_dict['链接'].apply(lambda x: make_hyperlink(x))wb = openpyxl.load_workbook(filename)ws = wb.get_sheet_by_name(sheet_name)links = []for i in range(2, ws.max_row + 1):  # 2nd arg in range() not inclusive, so add 1links.append(ws.cell(i, 4).value)df['链接'] = linksdf = pd.concat([df_dict, df])# Reassign the index labelsdf.index = [*range(df.shape[0])]df.to_excel(filename, sheet_name, index=False)def insert_data_to_sheet_tail(dict_data, sheet_name):# Returns a DataFramedf = pd.read_excel(filename, sheet_name)df_dict = pd.DataFrame.from_dict(dict_data)df_dict['链接'] = df_dict['链接'].apply(lambda x: make_hyperlink(x))wb = openpyxl.load_workbook(filename)ws = wb.get_sheet_by_name(sheet_name)links = []for i in range(2, ws.max_row + 1):  # 2nd arg in range() not inclusive, so add 1links.append(ws.cell(i, 4).value)df['链接'] = linksdf_dict = pd.concat([df, df_dict])# Reassign the index labelsdf_dict.index = [*range(df_dict.shape[0])]df_dict.to_excel(filename, sheet_name, index=False)

 

 项目源代码:

PythonSpiderTaskCity.rar-Python文档类资源-CSDN下载


http://chatgpt.dhexx.cn/article/moCwxLkm.shtml

相关文章

软件开发外包项目常见的问题

Author&#xff1a;3# 一个专注于web技术的80后 核心就是一句话:软件开发要知其然知其所以然。 CSDN3#&#xff0c;CSDN官方首发&#xff0c;3#原创 博客&#xff1a; &#x1f449; 极客小俊GeekerJun &#x1f448; 前言 外包项目经常会遇见一些很不可控的问题, 根本原因在于…

国内外10大项目外包平台

国内外包平台 1.猪八戒网 网址: www.zhubajie.com 特点:以国内项目为主&#xff0c;主要为页面设计&#xff0c;logo设计等小型项目为主。 2.任务中国 网址: www.taskcn.com 特点: 是一个为消除劳务信息的地域差异、为广大有能力威客们建立的2010年后主流工作平台之一。 3.软件…

FPGA项目承接|FPGA项目外包|FPGA项目研发

您还为找不到合适的FPGA开发工程师心急如焚吗? 汇集了2000G的FPGA学习和研发技术资料,可以免费分享给FPGA技术爱好者,微信:www8928 您可以找燎原团队! 燎原团队致力于FPGA多核板卡设计开发,可以配合您的开发团队,提供稳定可靠的FPGA解决方案,现有专职+兼职团队20多位…

承接软硬件项目外包开发

多年来一直从事轨道交通、铁路专用电子设备开发&#xff0c;做软硬件开发培训&#xff0c;小批量委托生产&#xff0c;曾做过很多项目&#xff0c;单片机软件开发及硬件设计的经验丰富&#xff0c;具体项目信息如下&#xff1a; 1、采用单片机&#xff08;PIC&#xff09;设计架…

银行项目外包专题系列之二:公司没提升打杂,裸辞后收到银行外包,到底去还是不去

有小伙伴反馈&#xff1a; 【在上一家公司觉得没啥提升&#xff0c;整天忙着打杂&#xff0c;裸辞了&#xff0c;现在收到了银行外包的Offer&#xff0c;觉得银行外包可以去吗&#xff1f;】 这里说一下我对于这个问题的看法和理解&#xff0c;这个问题也是目前很多年轻人的现…

3年经验程序员聊聊外包项目,总结了6个典型的问题该如何解决

我是一名老程序员&#xff0c;接了项目&#xff0c;接外包项目已经有3年多的经验了。今天我想分享一些接项目的经验给大家。 第一&#xff0c;辞职去接外包&#xff0c;好吗&#xff1f;有很多人幻想辞职了全职去接外包&#xff0c;但我并不太建议这样做。我建议大家先把自己的…

成功管理外包项目的4个技巧

业务流程外包在商业世界中并不是什么新鲜事。在过去的几年里&#xff0c;它已成为一种趋势。原因是外包可以提高效率&#xff0c;提供成本优势&#xff1b; 外包后&#xff0c;企业可以专注于核心领域。 此外&#xff0c;它还提供对非常熟练的资源等的访问。 但即使外包&#…

软件项目外包的合作流程是怎样的?

关于“软件项目外包”&#xff0c;是指企业未搭建技术团队&#xff0c;而将项目下放给专门做软件开发服务的第三方公司的一种项目外包方式&#xff0c;原因是为了减少试错成本&#xff0c;节省总成本&#xff0c;利用软件公司的专业服务提高工作效率。 软件外包行业的发展为非…

TX2--Tegra架构介绍

一、Tegra发展以及各Tegra对比 1、Tegra发展 &#xff08;1&#xff09;2008年2月&#xff0c;NVIDIA与Microsoft合作开发基于ARM11架构的APX 2500应用处理器发布。 &#xff08;2&#xff09;随后英伟达发布Tegra产品Tegra 600 和 Tegra 650&#xff0c;集成的显示核心是基…

tx2刷机全套教程

想要完成人工智能相关操作&#xff0c;一个完美的系统是必要的。大部分友友在环境配置过程中都会遇到各种无法解决的情况&#xff0c;有些报错在网上很难找到解决方法&#xff0c;不是方法不适合我们自己的系统就是按照方法完成到最后系统无反应&#xff0c;这是不是你所需要的…

jetson tx2 使用串口通信详细教程

目录 基础理论硬件连线软件调试win10端Linux&#xff08;tx2&#xff09;编写串口通信程序使用usb串口 基础理论 查看串口情况 ls -l /dev/ttyTHS* 我们用的串口是J17&#xff0c;如果没有ttyTHS2,则需要自己打开,打开方式参考https://blog.csdn.net/weixin_38428439/article…

TX2学习笔记(1)——NVIDIA Jetson TX2 开箱上电

期待已久的NVIDIA Jetson TX2终于到货了&#xff0c;迫不及待拆箱上电学习学习&#xff01; 第一次接触这么高配置的板子&#xff0c;拆箱上电还是比较束手束脚&#xff0c;怕一不小心就弄坏了&#xff0c;好在这板子质量确实可以。 按照教程放心用&#xff0c;哈哈~~~ 1、拆…

Nvidia Jetson TX2刷机(三天刷机真实过程包教包会)

SDK MANAGER JETPACK 4.5.1最新版本 一、准备工作 1.host端(ubuntu)配置&#xff1a; 安装Nvidia官方提供的刷机工具SDK MANAGER&#xff0c;注意host端的ubuntu系统要保留较大的磁盘空间,此处为保险起见分配了80GB&#xff0c;但由于自己的ubuntu系统已无空间&#xff0c;便…

Jetson TX2 刷机

文章目录 准备工作1. host端&#xff08;ubuntu&#xff09;配置2. 连接线3. 安装 NVIDIA SDK Manager 开始刷机STEP1STEP2STEP3STEP4 准备工作 1. host端&#xff08;ubuntu&#xff09;配置 要有一台安装有 ubuntu 系统的主机&#xff0c;且有30GB以上的可用空间。 配置US…

NVIDIA Jetson TX2 简单介绍

NVIDIA Jetson TX2 嵌入式领域的AI超级电脑 它是一台基于NVIDIA Pascal™架构的AI单模块超级计算机。它性能强大&#xff0c;外形小巧&#xff0c;节能高效&#xff0c;适合机器人、无人机、智能摄像机和便携医疗设备等智能终端设备。它支持 Jetson TX1 模块的所有功能&#…

TX2刷机全过程

由于作者接手学长的tx2&#xff0c;在不刷机的情况下配置yolo环境失败&#xff0c;并且tx2黑屏&#xff0c;于是开始刷机。 硬件方面 一根原厂自带的数据线&#xff0c;一根网线&#xff08;不建议使用无线网络&#xff0c;因为很不稳定&#xff09; 软件方面 主机使用的Ubu…

TX2刷机 JetPack4.4

TX2刷机 JetPack4.4 Ubuntu18.04 虚拟机安装SDK Manager 安装TX2系统刷入Jetson OS 安装宝塔资源配置查看TX2 DesktopSharing 无法启动TensorFlow 1.X、2.X 安装包 Ubuntu18.04 虚拟机安装 VMware16 安装方法传送 Ubuntu 18.04 下载 清华源传送门 内存8G起步 硬盘80G起步 …

Jetson TX2 刷机教程(JetPack4.2版本)

自从NVIDIA出现JetPack4.2(Ubuntu18.04)版本之后&#xff0c;安装方式和之前就大不相同&#xff0c;看了前面的几个安装版本之后&#xff0c;感觉新版的好像安装起来更加简洁了&#xff0c;只需要一个SDK就可以&#xff0c;下面来看看详细步骤&#xff1a; ①下载SDK Manager&a…

Jetson TX2 入门 ——介绍

暑假留校&#xff0c;老师给我们拿了两块开发板&#xff0c;一个是英伟达的Jetson TX2&#xff0c;一个是up squared&#xff0c;让我们先熟悉开发板&#xff0c;为明年的比赛做准备。这两个板子是前几届学长做比赛用过的。自己也是刚开始接触这些板子&#xff0c;就按照网上的…

Jetson TX2介绍

目录 Jetson TX2概述 Jetson TX2架构 1.模组配置 2. 对外接口 3.按键接口 和TX1的对比 自带的软件包配置JetPack 3.0 CUDA OpenCV VisionWorks 应用场景 Jetson TX2概述 Jetson TX2是NIVDIA瞄准人工智能在Jetson TK1和TX1推出后的升级 TX2的GPU和CPU都进行了升级…