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

WordPress限制微信打开seo网络推广公司

WordPress限制微信打开,seo网络推广公司,做网站论坛,静安做网站的公司python爬虫的练习 1.爬取天气网的北京城市历史天气数据1.1 第一种使用面向对象OOP编写爬虫1.2 第二种使用面向过程函数编写爬虫 1.爬取天气网的北京城市历史天气数据 1.1 第一种使用面向对象OOP编写爬虫 import re import requests from bs4 import BeautifulSoup import xlw…

python爬虫的练习

  • 1.爬取天气网的北京城市历史天气数据
    • 1.1 第一种使用面向对象OOP编写爬虫
    • 1.2 第二种使用面向过程函数编写爬虫

1.爬取天气网的北京城市历史天气数据

1.1 第一种使用面向对象OOP编写爬虫

import re
import requests
from bs4 import BeautifulSoup
import xlwtclass Spider(object):"""  天气数据爬虫类  """  # 定义类变量,用于正则表达式datatime_pattern = re.compile(r'<div class="th200">(.*?)</div>')wendu_pattern = re.compile(r'<div class="th140">(.*?)</div>')def __init__(self, url, headers, filepath):"""  初始化方法  :param url: 基础URL模板  :param headers: HTTP请求头  :param filepath: 输出文件路径  """  self.url = urlself.headers = headersself.datalist = []  # 存储日期的列表  self.mwen = []      # 存储最高温度的列表  self.iwen = []     	# 存储最低温度的列表  self.tq = []		# 存储天气状况的列表  self.fx = []		# 存储风向的列表 self.filepath = filepath  def download_page(self,url):"""  下载页面并返回页面内容  :param url: 要下载的页面URL  :return: 页面内容或None(如果下载失败)"""  try:response = requests.get(url, headers=self.headers)response.raise_for_status()  # 如果HTTP请求返回了不成功的状态码,则引发HTTPError异常return response.textexcept requests.RequestException as e:print(f"Error downloading page: {e}")return Nonedef parse_page(self, html):"""  解析页面内容,提取日期和温度数据  :param html: 页面内容  """  soup = BeautifulSoup(html, 'html.parser')# print(soup)for item in soup.find_all('ul', class_='thrui'):item_str = str(item)# print(item)# 使用正则表达式提取日期数据  dates = re.findall(self.datatime_pattern, item_str)self.datalist.extend(dates)# print(dates)# 使用正则表达式提取温度数据  temperatures = re.findall(self.wendu_pattern, item_str)print(temperatures)# 假设每组温度数据包含4个部分:最高温度、最低温度、天气状况、风向  for i in range(0, len(temperatures), 4):self.mwen.append(temperatures[i])self.iwen.append(temperatures[i + 1])self.tq.append(temperatures[i + 2])self.fx.append(temperatures[i + 3])def download_and_parse_all_pages(self):"""  下载并解析所有页面  """  for year in range(23, 24):  # 这里设定只是下载2023年的for month in range(1, 2):  # 这里设定只是下载2023年的1月的# base_url = self.url  page_url = f"{self.url}20{year:02d}{month:02d}.html" # 这里设定不够两位补0print(page_url)html = self.download_page(page_url)# print(html)if html:self.parse_page(html)def save_to_excel(self):"""  将爬取的数据保存到Excel文件中  """  workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)worksheet = workbook.add_sheet('北京历史天气数据', cell_overwrite_ok=True)# 写入表头 columns = ("日期", "最高温度", "最低温度", "天气", "风向")for i, col in enumerate(columns):worksheet.write(0, i, col)# 写入数据  for i in range(len(self.datalist)):worksheet.write(i + 1, 0, self.datalist[i])worksheet.write(i + 1, 1, self.mwen[i])worksheet.write(i + 1, 2, self.iwen[i])worksheet.write(i + 1, 3, self.tq[i])worksheet.write(i + 1, 4, self.fx[i])workbook.save(self.filepath)print(f"Data saved to {self.filepath}")def run(self):self.download_and_parse_all_pages()self.save_to_excel()if __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0(compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)'}url_template = "http://lishi.tianqi.com/beijing/"filepath = "beijing_weather_data.xls"spider = Spider(url_template, headers, filepath)spider.run()

1.2 第二种使用面向过程函数编写爬虫

import requests
from bs4 import BeautifulSoup
import re
import xlwtdatatime = re.compile('<div class="th200">(.*?)</div>')
wendu = re.compile('<div class="th140">(.*?)</div>')def down_allpage(url):datalist = []mwen = []iwen = []tq = []fx = []for i in range(23,24):for j in range(1,2):baseurl = url + '20{}{:0>2d}.html'.format(i, j)html = down_page(baseurl)# print(html)soup = BeautifulSoup(html, 'html.parser')for item in soup.find_all('ul',class_='thrui'):# print(item)item = str(item)riqi = re.findall(datatime,item)for item1 in riqi:datalist.append(item1)# print(datalist)zb_all = re.findall(wendu,item)# print(zb_all)for i in range(31):mwen.append(zb_all[i*4+0])iwen.append(zb_all[i*4+1])tq.append(zb_all[i*4+2])fx.append(zb_all[i*4+3])# print(mwen,'\n',iwen,'\n',tq,'\n',fx)return datalist,mwen,iwen,tq,fxdef save_xls(datalist,mwen,iwen,tq,fx):wb = xlwt.Workbook(encoding='utf-8', style_compression=0)ws = wb.add_sheet('天气数据',cell_overwrite_ok=True)col = ("日期","最高温度","最低温度","天气","风向")for i in range(len(col)):ws.write(0,i,col[i])for i in range(len(datalist)):ws.write(i+1,0,datalist[i])for i in range(len(mwen)):ws.write(i+1,1,mwen[i])for i in range(len(iwen)):ws.write(i+1,2,iwen[i])for i in range(len(tq)):ws.write(i+1,3,tq[i])for i in range(len(fx)):ws.write(i+1,4,fx[i])wb.save(r'D:\天气数据.xls')def down_page(url):headers = {'User-Agent': 'Mozilla/5.0(compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)'}r = requests.get(url, headers=headers)html = r.textreturn html# print(html)if __name__ == '__main__':url = 'http://lishi.tianqi.com/beijing/'# down_page(url)down_allpage(url)datalist,mwen,iwen,tq,fx = down_allpage(url)print(datalist)save_xls(datalist,mwen,iwen,tq,fx)
http://www.hkea.cn/news/776850/

相关文章:

  • p2p网站开发文档免费b站软件下载
  • 有没有做q版头像的网站今天百度数据
  • wordpress页面修改插件seo顾问阿亮
  • 政府门户网站建设标准国际婚恋网站排名
  • 上海青浦网站建设郑州靠谱seo电话
  • 网站建设怎么样seo专家招聘
  • 在网盘上怎么做自己的网站整站优化推广
  • php建设网站实训百度搜索引擎的总结
  • 怎么在360自己做网站重庆seo排名收费
  • 外贸网站建设浩森宇特教育培训报名
  • 网站开发价目表深圳市前十的互联网推广公司
  • php做视频直播网站关键词竞价广告
  • 重庆怎么站seo深圳网络推广团队
  • 自学软件网站开发网络推广怎样做
  • 最新版的wordpress怎么添加特征图优化关键词的作用
  • 深圳做网站google推广网络营销和传统营销的区别和联系
  • 专业做网站的顺德公司网络推广怎么收费
  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口
  • 在线教育网站用什么做百度搜索的优势
  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训