当前位置: 首页 > news >正文

什么网站做旅行计划网站开发接入本地天地图

什么网站做旅行计划,网站开发接入本地天地图,英文网站建设解决方案,阳江市房产信息网官网#x1f49b;前情提要#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦#x…前情提要 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦 以下内容干货满满跟上步伐吧~ 导航小助手 本章重点一. 概述二. 演示效果三.核心逻辑总结 本章重点 利用scrapy框架练习爬虫 一. 概述 运用Python语言编程知识及实现网络数据采集的各种Python第三方库、Scrapy框架等实现技术爬取网页信息要求爬取的网页信息至少包括两种类型标题列表页该页要包括分页功能和详情页。 二. 演示效果 整体框架 文件导出 数据库导出 三.核心逻辑 编写对应蜘蛛程序 def start_requests(self):# 爬列表页 只爬1页for page in range(1, 2):yield Request(urlhttps://jobs.51job.com/beijing/p{}.format(page), callbackself.parse)def parse(self, response: HtmlResponse, **kwargs):# time.sleep(3)# 查看网页内容# print(response.text)sel Selector(response)# 浏览器F12 选中目标鼠标右击copy selector# 得到原始css选择器 body div.maincenter div.mcon div.left div.detlist.gbox div:nth-child(7)title_text sel.css(title::text).extract_first()# title_text sel.xpath(//title/text()).extract_first()# 测试一下标题能不能获取到如果不能几乎可以肯定有问题print(title_text:, title_text)list_items sel.css(div.detlist.gbox div)for list_item in list_items:job_item JobItem()job_id list_item.css(input::attr(value)).extract_first()title list_item.css(p.info span.title a::text).extract_first()location list_item.css(p.info span.location.name::text).extract_first()salary list_item.css(p.info span.location:not(.name)::text).extract_first()# 得到的是 学历要求本科 , 需要处理一下得到 本科degree list_item.css(p.order::text).extract_first().split()[1].strip()# 详情页面detail_url list_item.css(p.info span.title a::attr(href)).extract_first()print(test:, job_id, title, location, salary, degree, detail_url)job_item[job_id] job_idjob_item[title] titlejob_item[location] locationjob_item[salary] salaryjob_item[degree] degreeyield Request(urldetail_url,callbackparse_detail,cb_kwargs{item: job_item})def parse_detail(response: HtmlResponse, **kwargs):job_item kwargs[item]sel Selector(response)# 原始css选择器 div.tCompany_main div.tBorderTop_box div.tmsg.inboxcompany_detail sel.css(div.tmsg.inbox::text).extract_first()print(company_detail:, company_detail)job_item[company_detail] company_detailyield job_item构造Items class JobItem(scrapy.Item):job_id scrapy.Field()title scrapy.Field()location scrapy.Field()salary scrapy.Field()degree scrapy.Field()company_detail scrapy.Field()编写文件管道Excel class ExcelPipeline:def __init__(self):self.wb openpyxl.Workbook()self.ws self.wb.activeself.ws.title Jobsself.ws.append([职位ID, 职位,工作地点, 薪资范围,学历要求, 公司详情])def open_spider(self, spider):passdef close_spider(self, spider):self.wb.save(51jobs.xlsx)def process_item(self, item, spider):company_detail, degree, job_id, location, salary, title get_infos(item)# self.ws.append([job_id, title, location, salary, degree, company_detail])self.ws.append((job_id, title, location, salary, degree, company_detail))return item编写数据库管道及建表 class DbPipeline:def __init__(self):self.conn pymysql.connect(hostlocalhost, port3306, userroot, passwordroot,dbspyder, charsetutf8mb4)self.cursor self.conn.cursor()def close_spider(self, spider):print(commit------------------------------)self.conn.commit()self.conn.close()def process_item(self, item, spider):company_detail, degree, job_id, location, salary, title get_infos(item)self.cursor.execute(insert into tb_51job_items (job_id, title, location, salary, degree, company_detail) values (%s,%s,%s,%s,%s,%s),(job_id, title, location, salary, degree, company_detail))return itemCREATE TABLE spyder.tb_51job_items (job_id varchar(100) NULL COMMENT 职位ID,title varchar(100) NULL COMMENT 职位,location varchar(100) NULL COMMENT 工作地点,salary varchar(100) NULL COMMENT 薪资范围,degree varchar(100) NULL COMMENT 学历要求,company_detail varchar(2000) NULL COMMENT 公司详情 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;配置管道及优先级 ITEM_PIPELINES {spider51job.pipelines.ExcelPipeline: 300,spider51job.pipelines.DbPipeline: 400 }编写中间件代码 def __init__(self):self.browser create_chrome_driver(headlessFalse)self.browser.get(https://jobs.51job.com)# 初始化时, 先访问主页, 得到cookie信息cookie_file 51job_cookies.json# 这边也可以先人工运行test_generate_cookies.py提前生成好cookies信息,下面直接add_cookies使用就可以了generate_cookies(self.browser, cookie_file)add_cookies(self.browser, cookie_file)def __del__(self):# 爬完关闭浏览器self.browser.close()def process_request(self, request, spider):# Called for each request that goes through the downloader# middleware.# Must either:# - return None: continue processing this request# - or return a Response object# - or return a Request object# - or raise IgnoreRequest: process_exception() methods of# installed downloader middleware will be calledself.browser.get(request.url)# time.sleep(5)if request.url.startswith(https://jobs.51job.com/beijing/p):wait_obj WebDriverWait(self.browser, 10)wait_obj.until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, #searchForm)))print(爬的时候可能也被反爬需要人工滑块!)# page_source这个可以获取到动态页面的源代码return HtmlResponse(urlrequest.url, bodyself.browser.page_source,encodingutf-8, requestrequest)总结 综上我们基本了解了“一项全新的技术啦” ~~ 恭喜你的内功又双叒叕得到了提高 感谢你们的阅读 后续还会继续更新欢迎持续关注哟~ 如果有错误❌欢迎指正呀 ✨如果觉得收获满满可以点点赞支持一下哟~✨ 【传知科技 – 了解更多新知识】
http://www.dnsts.com.cn/news/118777.html

相关文章:

  • 如何做网站电话个人简历怎么写简短又吸引人
  • 苏州做外贸网站php学校网站模板
  • 介绍小说的网站模板请问注册公司怎么注册
  • 东莞北京网站建设价格网站建设评审会总结发言
  • 宣城有做网站的公司吗济南优化联系电话
  • 网站托管流程什么是网络社交
  • 门户网站建设公司教程济宁网上做科目一的网站
  • 网站翻页动画效果包装设计公司哪家好
  • 企业网站建设熊掌号中国广东网站建设
  • php网站开发结构成都网站建设_创新互联
  • 用dw做教学网站清除wordpress开发痕迹
  • 网站美化的目标广州影视制作公司
  • 帝国网站模板下载沂源县建设局网站
  • html制作电影网站scratch少儿编程软件下载
  • 网站百度流量怎么做wordpress 小论坛小程序
  • 网站建设及推广文案讯美智能网站建设
  • 网站开发项目计划wordpress5.0.2编辑器
  • dw网站二级页面怎么做对网站建设的维护
  • 网站关键词优化排名公司购买设备有什么网站做参考
  • 进入网站后台ftp空间后怎样上传长沙有什么好玩的
  • 免费项目发布平台佛山网站页面优化
  • 邮箱注册网站wordpress二级目录
  • 小说在线阅读网站怎么做浙江省建设项目招投标网站
  • 大连网站建设哪个好开发公司排名
  • wordpress模板分享seo店铺描述例子
  • 长沙h5手机网站制作潍坊网站建设推广报价
  • 营销型网站建设实战一级造价工程师专业
  • 公司网站案例神魔网站建设
  • 城乡建设部门户网站钢铁网站模板
  • 博纳网站建设网站建设实训内容