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

wordpress博客三栏主题湖北seo网站推广

wordpress博客三栏主题,湖北seo网站推广,公司做网站费用会计处理,网站建设模0x00 前言 朋友做标书,需要用到每日温度,他的老板让在这个网页手动复制做一个长期表出来:http://www.tianqihoubao.com/lishi/nanjing/month/202412.html 想着帮个忙,做个爬虫脚本吧,忽然发现这个页面很有意思&#xf…

0x00 前言

朋友做标书,需要用到每日温度,他的老板让在这个网页手动复制做一个长期表出来:http://www.tianqihoubao.com/lishi/nanjing/month/202412.html

想着帮个忙,做个爬虫脚本吧,忽然发现这个页面很有意思:

  • 简单的 BeautifulSoup4 只能爬到主要信息还没有加载时的页面内容
  • 网页返回信息的时间上下限非常久,快则3秒慢则30秒
  • 流式一行一行渲染,简单 wait 会很容易只获取一半就截断了

0x01 驱动准备

我的 Chrome 是 133.x 版本的,由于 114.x 之后的版本就不在原先的页面更新了,还挺难找的。

现在的 ChromeDriver 可以到这里下载:
https://googlechromelabs.github.io/chrome-for-testing/#stable

0x02 源码分享

# coding: utf-8
# ==========================================================================
#   Copyright (C) since 2024 All rights reserved.
#
#   filename : web_spider_eye_selenium.py
#   author   : chendian / okcd00@qq.com
#   date     : 2024/12/08 00:33:33
#   desc     : Download the driver in https://googlechromelabs.github.io/chrome-for-testing/#stable
#              
# ==========================================================================
import time
import json 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECclass WebSpiderSelenium():def __init__(self):self.options = Options()self.options.headless = True  # 设置无头模式(不弹出浏览器窗口)# 设置 ChromeDriver 路径driver_path = './chromedriver_131.exe'  # 修改为你自己的 ChromeDriver 路径service = Service(driver_path)# 初始化 WebDriverself.driver = webdriver.Chrome(service=service, options=self.options)def scrape_table_content_with_selenium(self, url, css_selector):try:self.driver.get(url)# time.sleep(5)  # 可以根据实际情况调整等待时间# 等待目标元素加载完成(最长等待10秒)target_element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, css_selector)))return target_element.text.strip()except Exception as e:return f"发生错误: {e}"def scrape_table_content_with_selenium_wait(self, url, css_selector):# 配置 ChromeOptionstry:# 打开网页self.driver.get(url)# 等待页面加载完成time.sleep(5)  # 可以根据实际情况调整等待时间# 使用选择器定位到目标元素target_element = self.driver.find_element(By.CSS_SELECTOR, css_selector)# 获取并返回目标元素的文本内容return target_element.text.strip()except Exception as e:return f"发生错误: {e}"def crawl_weather():# 示例results = {}css_selector = "#content > table > tbody"  # 指定选择器wss = WebSpiderSelenium()# for date in ['202308', '202309', '202406', '202408']:for year in ['2023', '2024']:for month in [f"{i:02d}" for i in range(1, 13)]:date = f"{year}{month}"url = f"http://www.tianqihoubao.com/lishi/nanjing/month/{date}.html"  # 替换为实际的目标 URLresult = wss.scrape_table_content_with_selenium(url, css_selector)results[date] = str(result)json.dump(results, open('./南京近两年天气.v2.json', 'w'), ensure_ascii=False, indent=1)def analysis_results():results = json.load(open('./南京近两年天气.v2.json', 'r'))import pandas as pdret = []for month, text in results.items():lines = text.split('\n')[1:]for line in lines:items = line.split()date, l, h = items[0], items[3], items[5]ret.append({"日期": date, "最低温度": l, "最高温度": h})pd.DataFrame(ret).to_excel("./南京近两年温度情况.xlsx")if __name__ == "__main__":crawl_weather()analysis_results()

0x03 效果展示

朋友只需要温度信息,如果需要更多,在 items 里拼就行
欢迎大家举一反三用于其它爬虫场景。

在这里插入图片描述

http://www.yayakq.cn/news/664916/

相关文章:

  • 查网站域名备案查询怎样套用wordpress模板
  • 上海网站建设公司 红威中通物流企业网站建设书
  • 无法更新网站主页 dedecms网站建设_聊城
  • 帮人做网站好挣吗江西网络推广外包
  • 导购网站 icp备案要求做企业网站能赚钱吗?
  • 罗湖做网站的海南三亚做网站
  • 长安网站建设制作公司学做网站要什么基础
  • 网站建设买了服务器后怎么做江苏苏州有什么好玩的
  • 企业营销型网站建设图片企业购物网站开发
  • 潮汕网站建设antnw做微网站的第三方登录
  • php网站开发实战开发12380 举报网站建设
  • 万网有跟企业做网站吗优化外贸网站
  • 坪地网站建设商城网站优化方案
  • 汕头seo网站排名伍佰亿营销型网站
  • 郑州高端网站公司seo站外推广
  • 普宁做网站宁波seo推广哪家公司好
  • 网站建设教程app做效果图的兼职网站
  • 如何快速建网站正版win10做win7系统下载网站
  • 如何网站平台建设好上海网站开发一对一培训价格
  • 深圳哪家网站建设公司好网址一
  • 省住房与城乡建设厅网站永久免费的cms系统带商城
  • 做网站比较好优化最狠的手机优化软件
  • 防城港网站开发wordpress ios api
  • 怎么区分网站的好坏自建网站定位
  • 网站美工培训做网站为什么用php
  • 如何在网站做推广做网站选什么主机
  • 网站建设销售提成中国建设银行手机银行下载
  • 济南做网站最好的公司网站付费模板
  • 青岛网站建设¥青岛博采网络visio做网站效果
  • 支付功能网站建设做女朋友网站