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

asp网站开发移动端建筑工程管理系统平台

asp网站开发移动端,建筑工程管理系统平台,青岛建设项目环评公示网站,php开发链家二手房数据抓取与Excel存储 目录 开发环境准备爬虫流程分析核心代码实现关键命令详解进阶优化方案注意事项与扩展 一、开发环境准备 1.1 必要组件安装 # 安装核心库 pip install requests beautifulsoup4 openpyxl pandas# 各库作用说明#xff1a; - requests#x…链家二手房数据抓取与Excel存储 目录 开发环境准备爬虫流程分析核心代码实现关键命令详解进阶优化方案注意事项与扩展 一、开发环境准备 1.1 必要组件安装 # 安装核心库 pip install requests beautifulsoup4 openpyxl pandas# 各库作用说明 - requests网络请求库版本≥2.25.1 - beautifulsoup4HTML解析库版本≥4.11.2 - openpyxlExcel文件操作库版本≥3.1.2 - pandas数据分析库版本≥2.0.31.2 开发环境验证 import requests from bs4 import BeautifulSoup import pandas as pdprint(所有库加载成功)二、爬虫流程分析 2.1 技术路线图 #mermaid-svg-dSFbzOPD0BoTsUuj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-dSFbzOPD0BoTsUuj .error-icon{fill:#552222;}#mermaid-svg-dSFbzOPD0BoTsUuj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-dSFbzOPD0BoTsUuj .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-dSFbzOPD0BoTsUuj .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-dSFbzOPD0BoTsUuj .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-dSFbzOPD0BoTsUuj .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-dSFbzOPD0BoTsUuj .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-dSFbzOPD0BoTsUuj .marker{fill:#333333;stroke:#333333;}#mermaid-svg-dSFbzOPD0BoTsUuj .marker.cross{stroke:#333333;}#mermaid-svg-dSFbzOPD0BoTsUuj svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-dSFbzOPD0BoTsUuj .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-dSFbzOPD0BoTsUuj .cluster-label text{fill:#333;}#mermaid-svg-dSFbzOPD0BoTsUuj .cluster-label span{color:#333;}#mermaid-svg-dSFbzOPD0BoTsUuj .label text,#mermaid-svg-dSFbzOPD0BoTsUuj span{fill:#333;color:#333;}#mermaid-svg-dSFbzOPD0BoTsUuj .node rect,#mermaid-svg-dSFbzOPD0BoTsUuj .node circle,#mermaid-svg-dSFbzOPD0BoTsUuj .node ellipse,#mermaid-svg-dSFbzOPD0BoTsUuj .node polygon,#mermaid-svg-dSFbzOPD0BoTsUuj .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-dSFbzOPD0BoTsUuj .node .label{text-align:center;}#mermaid-svg-dSFbzOPD0BoTsUuj .node.clickable{cursor:pointer;}#mermaid-svg-dSFbzOPD0BoTsUuj .arrowheadPath{fill:#333333;}#mermaid-svg-dSFbzOPD0BoTsUuj .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-dSFbzOPD0BoTsUuj .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-dSFbzOPD0BoTsUuj .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-dSFbzOPD0BoTsUuj .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-dSFbzOPD0BoTsUuj .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-dSFbzOPD0BoTsUuj .cluster text{fill:#333;}#mermaid-svg-dSFbzOPD0BoTsUuj .cluster span{color:#333;}#mermaid-svg-dSFbzOPD0BoTsUuj div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-dSFbzOPD0BoTsUuj :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 发送HTTP请求 获取HTML源码 解析房源列表 提取字段数据 数据清洗 存储Excel 2.2 目标页面结构 https://cq.lianjia.com/ershoufang/ ├── div.leftContent │ └── ul.sellListContent │ └── li[data-houseid] # 单个房源 │ ├── div.title a # 标题 │ ├── div.flood div # 地址 │ ├── div.priceInfo div.totalPrice # 总价 │ └── div.followInfo # 关注量三、核心代码实现 3.1 完整代码带详细注释 链家二手房数据采集器 版本1.2 import requests from bs4 import BeautifulSoup import pandas as pd from time import sleep# 配置请求头模拟浏览器访问 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36,Accept-Language: zh-CN,zh;q0.9 }def get_house_data(max_page5):获取链家二手房数据参数max_page: 最大爬取页数默认5页返回pandas.DataFrame格式的清洗后数据all_data []for page in range(1, max_page1):# 构造分页URLurl fhttps://cq.lianjia.com/ershoufang/pg{page}/try:# 发送HTTP请求加入延迟防止封IPresponse requests.get(url, headersheaders, timeout10)response.raise_for_status() # 检测HTTP状态码sleep(1.5) # 请求间隔# 解析HTML文档soup BeautifulSoup(response.text, lxml)# 定位房源列表house_list soup.select(ul.sellListContent li[data-houseid])for house in house_list:# 数据提取带异常处理try:title house.select_one(div.title a).text.strip()address house.select_one(div.flood div).text.strip()total_price house.select_one(div.totalPrice).text.strip()unit_price house.select_one(div.unitPrice).text.strip()follow house.select_one(div.followInfo).text.split(/)[0].strip()# 数据清洗cleaned_data {标题: title,地址: address.replace( , ),总价(万): float(total_price.replace(万, )),单价(元/㎡): int(unit_price.replace(元/㎡, ).replace(,, )),关注量: int(follow.replace(人关注, ))}all_data.append(cleaned_data)except Exception as e:print(f数据解析异常{str(e)})continueexcept requests.exceptions.RequestException as e:print(f网络请求失败{str(e)})continuereturn pd.DataFrame(all_data)def save_to_excel(df, filenamehouse_data.xlsx):将数据保存为Excel文件参数df: pandas.DataFrame数据框filename: 输出文件名# 配置Excel写入参数writer pd.ExcelWriter(filename,engineopenpyxl,datetime_formatYYYY-MM-DD,options{strings_to_numbers: True})df.to_excel(writer,indexFalse,sheet_name链家数据,float_format%.2f,freeze_panes(1,0))# 保存并优化列宽writer.book.save(filename)print(f数据已保存至 {filename})if __name__ __main__:# 执行数据采集house_df get_house_data(max_page3)# 数据保存if not house_df.empty:save_to_excel(house_df)print(f成功采集 {len(house_df)} 条数据)else:print(未获取到有效数据)四、关键命令详解 4.1 核心方法说明 4.1.1 pandas.to_excel参数解析 df.to_excel(excel_writer, # Excel写入器对象sheet_nameSheet1,# 工作表名称na_rep, # 缺失值填充float_formatNone, # 浮点数格式化columnsNone, # 指定输出列headerTrue, # 是否包含列名indexTrue, # 是否保留索引index_labelNone, # 索引列标题startrow0, # 起始行startcol0, # 起始列engineNone, # 写入引擎merge_cellsTrue, # 合并单元格encodingNone, # 文件编码inf_repinf # 无穷大表示 )4.2 防反爬策略 # 1. 请求头伪装 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64),Accept-Encoding: gzip, deflate, br,Referer: https://cq.lianjia.com/ }# 2. IP代理池示例 proxies {http: http://10.10.1.10:3128,https: http://10.10.1.10:1080, }# 3. 请求速率控制 import random sleep(random.uniform(1, 3))五、进阶优化方案 5.1 数据存储优化 # 多Sheet存储 with pd.ExcelWriter(output.xlsx) as writer:df1.to_excel(writer, sheet_name重庆)df2.to_excel(writer, sheet_name北京)# 追加模式写入 def append_to_excel(df, filename):from openpyxl import load_workbookbook load_workbook(filename)writer pd.ExcelWriter(filename, engineopenpyxl)writer.book bookdf.to_excel(writer, startrowwriter.sheets[Sheet1].max_row, indexFalse)writer.save()5.2 异常监控体系 # 错误日志记录 import logging logging.basicConfig(filenamespider.log,levellogging.ERROR,format%(asctime)s - %(levelname)s - %(message)s )try:# 爬虫代码 except Exception as e:logging.error(f严重错误{str(e)}, exc_infoTrue)六、注意事项 法律合规 严格遵守《网络安全法》和网站Robots协议控制采集频率数据清洗 建议增加字段校验 def validate_price(price):return 10 price 2000 # 重庆房价合理范围校验性能调优 启用多线程采集需控制并发数使用lxml解析器替代html.parser禁用BeautifulSoup的格式化功能 存储扩展 存储方式优点缺点Excel查看方便大数据性能差CSV通用格式无多Sheet支持SQLite轻量级数据库需要SQL知识MySQL适合大规模存储需要部署数据库 # 快速使用指南1. 安装依赖库 bash pip install -r requirements.txt运行爬虫 python lianjia_spider.py输出文件 house_data.xlsx清洗后的完整数据spider.log错误日志记录 通过本方案可实现日均10万级数据的稳定采集建议根据实际需求调整采集频率和存储方案。请务必遵守相关法律法规合理使用爬虫技术。
http://www.w-s-a.com/news/550201/

相关文章:

  • 网站建设执招标评分表微信代理网站模板
  • ps做网站分辨率自适应地方网站盈利
  • 免费自助小型网站专业网站建设组织
  • 猎聘网网站建设目标查看别人wordpress主题
  • 免费建设网站入驻网站备案不能更新吗
  • 个人网站制作代码西安建筑类公司
  • 网站备案要营业执照吗网站建设如何记账
  • 新手学做网站难吗外包服务商
  • 公司网站建设的项目工作分解结构wordpress插件后端页面
  • 四川省建设人才网站2018南京专业建站
  • ppt制作网站推荐seo教程百度网盘
  • 网站建设多少钱一平米网上商城网站开发报告
  • 福州网站建设招聘信息哈尔滨中企动力科技股份有限公司
  • 军事新闻最新seo关键词查询排名软件
  • 免费网站建设官网项目建设表态发言
  • 平谷建站推广广告投放平台主要有哪些
  • 网站备案掉了什么原因步骤怎么读
  • 徐州市建设监理协会网站做一个公司官网需要多少钱
  • 网站开发学什么数据库做公司网站注意事项
  • 游戏开发网站建设国际战事最新消息
  • 达州+网站建设网站里自己怎么做推广
  • 看网站建设公司的网站案例熊掌号接入wordpress
  • 黄石下陆区建设局网站wordpress如何拖移小工具
  • 宁波网站建设信息网站开发看书
  • 网站建设优化价格北京优化seo排名
  • 微信网站建设公司费用高端网站建设 炫酷
  • 北京网站假设销售找客户最好的app
  • 做外贸需要关注的网站有什么好处宜州设计公司
  • 公司最近想做个网站怎么办陕西科强建设工程有限公司官方网站
  • 生态城门户网站 建设动态it外包收费