import uiautomator2 as us2
from AppSpider.mongodb_client import Mongo
import time
from AppSpider.action import Action
#拼接字符串
def SplitString(resourceId):
return "//android.widget.TextView[@resource-id ='{}']".format(resourceId)
#爬取
def spider(action):
result = {}
d = action.getDevice()
#工资
result['salary'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_job_salary')).get_text()
#工作地点
result['location'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_required_location')).get_text()
#工作经验
result['work_exp'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_required_work_exp')).get_text()
#学历
result['degree'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_required_degree')).get_text()
#职位名称
result['job_name'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_job_name')).get_text()
#职位标签
xpath_tags = d(className="android.view.ViewGroup", resourceId="com.hpbr.bosszhipin:id/flexboxLayout")
tag_list = []
index = 0
while (True):
try:
tag = xpath_tags.child(index=str(index), className="android.widget.TextView").get_text(2)
except:
break
tag_list.append(tag)
index = index + 1
result['tag_list'] = tag_list
action.whileToUp("com.hpbr.bosszhipin:id/tv_description")
#职位描述
description =d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_description')).get_text()
if "查看全部" in description:
action.ToUp()
time.sleep(1)
action.ToClick()
description = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_description')).get_text()
result['description'] = description
action.whileToUp("com.hpbr.bosszhipin:id/tv_com_name")
#公司名称
result['com_name'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_com_name')).get_text()
action.whileToUp("com.hpbr.bosszhipin:id/tv_com_info")
#公司规模
result['com_info'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_com_info')).get_text()
action.whileToUp("com.hpbr.bosszhipin:id/tv_location")
#公司位置
result['tv_location'] = d.xpath(SplitString('com.hpbr.bosszhipin:id/tv_location')).get_text()
return result
def start():
keyword = input("请输入爬取的关键词:")
client = "mongodb://localhost:27017/"
db = "spider_data"
col = keyword
mongo = Mongo(client, db, col)
device = us2.connect()
action = Action(device)
action.init(keyword)
num = 1
while(True):
try:
result = spider(action)
except:
break
mongo.insert_one(result)
print("已爬取到:{}条数据".format(str(num)))
num += 1
time.sleep(2)
action.ToRight()
time.sleep(1)
print("爬虫终止,共爬取"+str(num)+"条数据!!!")
if __name__ == "__main__":
start()
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
《项目介绍》 基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip 【注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!
资源推荐
资源详情
资源评论
收起资源包目录
基于Python实现boss直聘招聘信息爬取源码(Python大作业).zip (7个子文件)
项目说明.md 713B
AppSpider
www_zhiping_com_spider.py 3KB
action.py 1KB
mongodb_client.py 285B
show_images
show3.png 32KB
show2.png 242KB
show1.png 73KB
共 7 条
- 1
资源评论
- 2301_767764142024-04-14发现一个宝藏资源,资源有很高的参考价值,赶紧学起来~
北航程序员小C
- 粉丝: 2222
- 资源: 1823
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功