先来爬点简单的,然后再爬其他的东西

文章目录

  • 1,实验工具
  • 2,爬取网站
    • 1,先打开要爬的学校网站
    • 2,代码
  • 3,爬取学校官网的信息通知
    • 1,查看网站
    • 2,代码
  • 4,总结
  • 5,参考

1,实验工具

anaconda

2,爬取网站

话不多说,直接上干货

1,先打开要爬的学校网站

我爬的是http://www.51mxd.cn/problemset.php-page=1.htm。然后查看页面源代码,可以要看到我们要爬取的信息都在TD这个标签内
可以看到,我们要的东西就在这个TD里面,我们要做的就是把他们弄出来

2,代码

导入包

#导入包
import requests
from bs4 import BeautifulSoup
import csv
from tqdm import tqdm#在电脑终端上显示进度,使代码可视化进度加快

定义访问浏览器所需的请求头和写入csv文件需要的表头以及存放题目数据的列表

# 模拟浏览器访问
Headers = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400'
# 题目数据
subjects = []
# 表头
csvHeaders = ['题号', '难度', '标题', '通过率', '通过数/总提交数']

定义爬取函数

for pages in tqdm(range(1, 11 + 1)):r = requests.get(f'http://www.51mxd.cn/problemset.php-page={pages}.htm', Headers)r.raise_for_status()r.encoding = 'utf-8'soup = BeautifulSoup(r.text, 'html5lib')td = soup.find_all('td')#讲所有含TD的项提取出来subject = []for t in td:if t.string is not None:#利用string方法获取其中的内容subject.append(t.string)if len(subject) == 5:subjects.append(subject)subject = []

写入文件

with open('..\\source\\nylgoj.csv', 'w', newline='') as file:fileWriter = csv.writer(file)fileWriter.writerow(csvHeaders)fileWriter.writerows(subjects)print('\n题目信息爬取完成!!!')

要是爬取成功会得到这样的结果
看csv里面的东西,可以看到我们已经爬了下来

3,爬取学校官网的信息通知

1,查看网站

老规矩,先看网站,我的是http://news.cqjtu.edu.cn/xxtz.htm,这次要看的信息是全部通知发出的时间和通知的标题

2,代码

导入上面的包
对要用的数据进行定义

# 模拟浏览器访问
cqjtu_Headers ={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44'
}
#csv的表头
cqjtu_head=["日期","标题"]
#存放内容
cqjtu_infomation=[]

获取页数

def get_page_number():r=requests.get(f"http://news.cqjtu.edu.cn/xxtz.htm",headers=cqjtu_Headers)r.raise_for_status()r.encoding="utf-8"page_array={'type':'text/javascript'}soup = BeautifulSoup(r.text, 'html5lib')page_num=soup.find_all('script',page_array)page_number=page_num[4].string#只靠标签这些定位好像不是唯一,只能手动定位了page_number=page_number.strip('function a204111_gopage_fun(){_simple_list_gotopage_fun(')#删掉除页数以外的其他内容page_number=page_number.strip(',\'a204111GOPAGE\',2)}')page_number=int(page_number)#转为数字return page_number

对页面进行爬取的函数

def get_time_and_title(page_num,cqjtu_Headers):#页数,请求头if page_num==66 :url='http://news.cqjtu.edu.cn/xxtz.htm'else :url=f'http://news.cqjtu.edu.cn/xxtz/{page_num}.htm'r=requests.get(url,headers=cqjtu_Headers)r.raise_for_status()r.encoding="utf-8"array={#根据class来选择'class':'time',}title_array={'target':'_blank'}page_array={'type':'text/javascript'}soup = BeautifulSoup(r.text, 'html5lib')time=soup.find_all('div',array)title=soup.find_all('a',title_array)temp=[]for i in range(0,len(time)):time_s=time[i].stringtime_s=time_s.strip('\n                                    ')time_s=time_s.strip('\n                                ')#清除空格temp.append(time_s)temp.append(title[i+1].string)cqjtu_infomation.append(temp)temp=[]

写入文件的函数

def write_csv(cqjtu_info):with open('..\\source\\cqjtu.csv', 'w', newline='',encoding='utf-8') as file:fileWriter = csv.writer(file)fileWriter.writerow(cqjtu_head)fileWriter.writerows(cqjtu_info)print('爬取信息成功')

调用函数

page_num=get_page_number()#获得页数
for i in tqdm(range(page_num,0,-1)):get_time_and_title(i,cqjtu_Headers)
write_csv(cqjtu_infomation)

爬取成功后
这时,可以打开CSV文件查看一下结果
成功将所有信息全部爬取下来

4,总结

爬取静态网页还是比较简单的,只需要找到自己需要爬取的消息在哪里就可以了

5,参考

静态网页的爬虫

爬虫爬取信息(python))相关推荐

  1. 四小时学python爬虫爬取信息系列(第一天)

    四小时学python爬虫爬取信息系列(第一天)(全是干货) 1.安装requests库(可以在电脑python,我是进入anaconda我建的虚拟环境) anaconda虚拟环境法流程: conda ...

  2. 怎么防爬虫爬取信息_scrapy爬取51job职位信息(针对新的反爬虫机制)!

    1 定义抓取内容 在items.py中添加如下代码: class Job51Item(scrapy.Item):title = scrapy.Field()salary = scrapy.Field( ...

  3. 用Python爬虫爬取豆瓣电影、读书Top250并排序

    更新:已更新豆瓣电影Top250的脚本及网站 概述 经常用豆瓣读书的童鞋应该知道,豆瓣Top250用的是综合排序,除用户评分之外还考虑了很多比如是否畅销.点击量等等,这也就导致了一些近年来评分不高的畅 ...

  4. 原生爬虫爬取虎牙绝地求生直播热度排行榜

    原生爬虫爬取虎牙绝地求生直播热度排行榜 首先需要相应的知识储备: (1)import 导入方法 (2)面向对象思想 (3)for循环运用 (4)正则表达式 (5)lambda方法的应用 本次原生爬虫爬 ...

  5. 一对一直播源码服务器怎么样防范恶意爬取信息

    在一对一直播源码运行的过程中,产生的数据会存储在服务器上,对于任何一个平台来说,数据安全是数据存储最需要解决的问题.除了恶意访问.域名劫持等数据问题,有些爬虫会恶意爬取网站信息,这时候就需要进行进行拦 ...

  6. [python爬虫] 招聘信息定时系统 (一).BeautifulSoup爬取信息并存储MySQL

    这系列文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为当前天的,同时将爬取的内容保存到数据库中,然后制作定时系统每天执行爬取,最后是Python调用相关库发送短信到手机.         ...

  7. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  8. Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息

    XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...

  9. Python爬虫爬取链家网上的房源信息练习

    一 原链接:用Python爬虫爬取链家网上的房源信息_shayebuhui_a的博客-CSDN博客_python爬取链家 打开链家网页:https://sh.lianjia.com/zufang/  ...

最新文章

  1. Fragment导入包的问题
  2. 用python操作mysql数据库(之批量插入数据)
  3. WinSock学习笔记
  4. WPF框架教程 | 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器
  5. 数据结构实验之查找一:二叉排序树
  6. Python3bytes、hex、字符串之间相互转换
  7. python的数据库应用,Python数据库应用
  8. 数据结构(六)霍夫曼树与编码
  9. [转]Oracle SQL 日期的應用
  10. [Java] 蓝桥杯ADV-182 算法提高 前10名
  11. POJ 2431 Expedition (贪心+优先队列)
  12. 如何查看Dll中包含了哪些函数
  13. python爬虫教材推荐 豆瓣_学习python爬虫推荐书籍
  14. 需求分析-1 愿景分析
  15. python爬虫爬取博客_Python爬虫抓取csdn博客
  16. guzzlehttp/guzzle使用
  17. ios使用地图定位记录运动轨迹
  18. 论文发表查重率要小于多少?
  19. Silverlight 框架
  20. JS制作蔡徐坤打篮球小游戏(鸡你太美?)

热门文章

  1. 浏览器打印不弹出预览直接打印
  2. N1盒子恢复官改系统最简单的ddbr大法(适用小钢炮以及各种变砖)(转载)
  3. Ubuntu开机自启动(适用于ubuntu桌面、服务器、树莓派)
  4. 易游验证怎么配置?易游验证怎么使用!!
  5. java 使用fastjson map转对象
  6. 5个方法玩转社群,600个社群也不在话下
  7. UE4-(IK)实现人物脚贴合地面解决自身胶囊体影响效果问题
  8. 51单片机“嘀嘀嘀”报警器
  9. 计算机c语言期末答案,计算机C语言期末考试复习试题及答案[1]
  10. 2016MWC前瞻 华为爱立信中兴大战5G黑科技