爬取全部的校園新聞

1.從新聞url獲取新聞詳情: 字典,anews

2.從列表頁的url獲取新聞url:列表append(字典) alist

3.生成所頁列表頁的url并獲取全部新聞 :列表extend(列表) allnews

*每個同學爬學號尾數開始的10個列表頁

4.設置合理的爬取間隔

import time

import random

time.sleep(random.random()*3)

5.用pandas做簡單的數據處理并保存

保存到csv或excel文件?

newsdf.to_csv(r'F:\duym\爬蟲\gzccnews.csv')

保存到數據庫

import sqlite3
with sqlite3.connect('gzccnewsdb.sqlite') as db:
? ? newsdf.to_sql('gzccnewsdb',db)

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 11 12:33:03 2019@author: Administrator
"""import requests
from bs4 import BeautifulSoup
from datetime import datetime
import re
import pandas as pd
import time
import random
import sqlite3newsUrl = 'http://news.gzcc.cn/html/2005/xiaoyuanxinwen_0710/4.html'
listUrl = 'http://news.gzcc.cn/html/xiaoyuanxinwen/'def click(url):id = re.findall('(\d{1,5})', url)[-1]clickUrl = 'http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(id)resClick = requests.get(clickUrl)newsClick = int(resClick.text.split('.html')[-1].lstrip("('").rstrip("');"))return newsClickdef newsdt(showinfo):newsDate = showinfo.split()[0].split(':')[1]newsTime = showinfo.split()[1]newsDT = newsDate + ' ' + newsTimedt = datetime.strptime(newsDT, '%Y-%m-%d %H:%M:%S')return dtdef anews(url):newsDetail = {}res = requests.get(url)res.encoding = 'utf-8'soup = BeautifulSoup(res.text, 'html.parser')newsDetail['newsTitle'] = soup.select('.show-title')[0].textshowinfo = soup.select('.show-info')[0].textnewsDetail['newsDT'] = newsdt(showinfo)newsDetail['newsClick'] = click(newsUrl)return newsDetaildef alist(url):res = requests.get(listUrl)res.encoding = 'utf-8'soup = BeautifulSoup(res.text, 'html.parser')newsList = []for news in soup.select('li'):if len(news.select('.news-list-title')) > 0:newsUrl = news.select('a')[0]['href']newsDesc = news.select('.news-list-description')[0].textnewsDict = anews(newsUrl)newsDict['description'] = newsDescnewsList.append(newsDict)return newsListalist(listUrl)alist(newsUrl)
res = requests.get('http://news.gzcc.cn/html/xiaoyuanxinwen/')
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')for news in soup.select('li'):if len(news.select('.news-list-title')) > 0:newsUrl = news.select('a')[0]['href']print(anews(newsUrl))allnews = []
for i in range(57, 67):listUrl = 'http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html'.format(i)allnews.extend(alist(listUrl))print("allnewsLength={}".format(len(allnews)))
print(allnews)res = requests.get('http://news.gzcc.cn/html/xiaoyuanxinwen/')
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
for news in soup.select('li'):if len(news.select('.news-list-title')) > 0:newsUrl = news.select('a')[0]['href']print(anews(newsUrl))s1 = pd.Series([100, 23, 'bugingcode'])
print(s1)
pd.Series(anews)
newsdf = pd.DataFrame(allnews)
for i in range(5):print(i)time.sleep(random.random() * 3)print(newsdf)newsdf.to_csv(r'D:\py_file\gzcc.csv',encoding='utf_8_sig')with sqlite3.connect(r'D:\py_file\gzccnewsdb.sqlite') as db:newsdf.to_sql('gzccnewsdb',db)

?

轉載于:https://www.cnblogs.com/gswyz/p/10688905.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277977.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面向全球用戶的Teams app之合規性篇

我在前兩篇文章里分享了Global Ready的app時會遇到的不同挑戰。這篇我繼續分享在合規性方面的挑戰。 說到合規性compliance,不得不說GDPR標準,當我們發布了一個teams app后,微軟會要求開發人員做一個security self assessment,這…

C進階 - 內存四驅模型

一.內存四驅模型 不知我們是否有讀過 《深入理解 java 虛擬機》這本書,強烈推薦讀一下。在 java 中我們將運行時數據,分為五個區域分別是:程序計數器,java 虛擬機棧,本地方法棧,java 堆,方法區。…

行內元素中去掉文字的上下間距,使得文字所在元素的高度同字體高度一致的方法...

之前在p這類塊元素中的文字,給line-hight1;就可以去掉文字自帶的上下間距, 像這樣: 最近突然發現這個方法在行內塊和塊元素上好使,可當用在span或者a這類內聯元素上都不好使,除了轉為塊元素的方法來去掉上下間距&#…

VSCode的Teams插件

隨著今年在線的Build大會的結束,又是一大波的 Teams 新功能,新工具,新SDK。我接下來幾篇博客就會詳細和大家一一介紹。我今天先從VSCode的插件開始。 打開VS Code,搜索Teams,就可以找到Microsoft Teams Toolkit插件&a…

ADB原理,Wi-Fi連接,常用命令及拓展

Android 開發筆記 onGithub 文章多處鏈接需要科學上網 本文按順序主要講解了ADB的原理,使用Wi-Fi連接設備,ADB常用命令,在Java代碼中執行shell命令,使用ddmlib進行擴展。 ADB的原理 參考 官方文檔 ADB(Android Debug B…

使用Flow快速開發Teams小應用

繼續我的上一篇博客,這篇繼續介紹BUILD大會里的內容:Flow。 Flow是微軟power平臺的一個服務,通過簡單的拖拽就可以完成一個業務邏輯的處理,現在Flow和Teams的結合十分緊密。我們來試一下。 先點擊Teams左邊的Flow菜單。 如果你的…

python正則中如何匹配漢字以及encode(‘utf-8’)和decode(‘utf-8’)的互轉

正則表達式&#xff1a;  [\u2E80-\u9FFF]$ 匹配所有東亞區的語言   [\u4E00-\u9FFF]$ 匹配簡體和繁體   [\u4E00-\u9FA5]$ 匹配簡體   <input type"text" name"username" οnkeyup"valuevalue.replace([\u4E00-\u9FA5]$)"> 正則表…

【區塊鏈】認識區塊鏈的基本概念

2018年區塊鏈技術風卷全球&#xff0c;似乎大家都在談論區塊鏈&#xff0c;那到底什么區塊鏈&#xff0c;區塊鏈到底能干什么&#xff0c;對普通人會有什么影響&#xff0c;很多人還是稀里糊涂&#xff0c;那么就談談我的一些理解吧&#xff0c;拋磚引玉歡迎探討。 我是如何接觸…

Java 分割、合并byte數組

場景&#xff1a;上傳文件較大&#xff0c;把存放文件內容byte數組拆分成小的。下載的時候按照順序合并。 起初覺得挺麻煩的&#xff0c;寫完覺得挺簡單。 切割&#xff1a; /*** 拆分byte數組* * param bytes* 要拆分的數組* param size* 要按幾個組成一…

Java版本的Bot Framework SDK

微軟為了鼓勵Java開發人員開發bot&#xff0c;在上個月推出了Java的Bot SDK v4.6版本&#xff0c;目前還在Preview版本&#xff0c;相信不用多久就可以趕上其他版本了。 我的java還停留在 n 年前的水平&#xff0c;但是處于好奇&#xff0c;決定玩一下這套sdk。 這套sdk目前建…

jquery方法.serializeArray()獲取name和value并轉為json數組

jquery的.serializeArray()方法可以獲取形如以下 [ {name: firstname, value: Hello}, {name: lastname, value: World}, ] name value組成的對象數組&#xff0c;如果我們想得到key為name,value為value的json對象&#xff0c;則如下轉換&#xff1a; var m {}; $.each($(&quo…

Teams Bot 如何使用新的 System.Text.Json 庫

我最近把 LuckyDraw的代碼升級到了 .net core 3.1&#xff0c;當然我也很想使用最新的微軟json庫&#xff0c;System.Text.Json這個庫的性能比之前Newtonsoft.Json速度更快&#xff0c;而且就我本人愛好來說&#xff0c;更加喜歡System.Text.Json的命名&#xff0c;之前一直覺得…

將Teams Template升級到dotnet core 3.1

為了方便開發者開發Teams應用&#xff0c;我在2018年做了dotnet c#的一套模板&#xff0c;這套模塊一共有三種類型&#xff0c;一個是Teams OutgoingWebhook&#xff0c;一個是MessagingExtension&#xff0c;還有一個就是Tab。 今天特地去nuget上看了一下&#xff0c;下載量還…

【動態規劃】cf1034C. Region Separation

質因數分解套路的復雜度分析的動態規劃 題目大意 有一顆$n$個節點有點權的樹&#xff0c;初始整棵樹為$1$號區域&#xff0c;要求滿足下列規則&#xff1a; 除非$i$是最后一個等級&#xff0c;否則每一個$i$級區域都要被分成至少兩個$i1$級區域對于每種等級&#xff0c;每個點必…

阿里大魚短信介入demo分享

下面是關于大魚短信平臺對接的例子&#xff0c;發短信的話&#xff0c;可以用這個&#xff0c;很好用 /*** 通過阿里短信接口發送短信驗證碼* ***/ public class SendSmsUtil {private static Logger logger Logger.getLogger(SendSmsUtil.class);/*** 生成驗證碼* return*/pu…

GraphAPI 1.0中新增加的Teams API

這篇繼續介紹BUILD大會里的內容&#xff1a;兩個新加入GraphAPI 1.0的關于Teams的API。 這兩個新增api是關于在頻道Channel里發送消息和回復消息的。實際上這兩個api在beta版本中早就已經加入&#xff0c;上個月build大會中公布的只是把這兩個api正式發布到1.0版本&#xff0c…

【數據結構】線性表(一):順序列表

線性表(linear_list)是最常用且最簡單的一種數據結構&#xff0c;簡言之&#xff0c;一個線性表是n個數據元素的有序序列。 例如&#xff1a;&#xff08;a1 , ... , ai-1 , ai , ai1 , ... , an)&#xff1a;ai-1 是 ai 的直接前驅&#xff0c;ai1 是 ai 的直接后驅。 并且&am…

Python_XlrdXlwt

1 import xlrd 2 # \U 開始的字符被編譯器認為是八進制 解決方法 r 3 objWB xlrd.open_workbook(rC:\Users\IBM\Desktop\S1\7月下旬入庫表.xlsx) 4 # 索引號 objTable objWB.sheet_by_index(0) 5 objTable objWB.sheet_by_name(7月下旬入庫表) 6 # 單元格3種讀取方式 7 print…

校招需要看的書 鞏固的知識

前言 感謝教練&#xff0c;學長們&#xff0c;隊友&#xff0c;lollipop&#xff0c;貓哥&#xff0c;李哥&#xff0c;表哥&#xff0c;雞哥&#xff0c;樣樣&#xff0c;咸糖&#xff0c;茗記&#xff0c;明沙&#xff0c;嘻&#xff0c;樹佬(排名不分先后)等等太多太多的人的…

新的Teams API權限控制

這篇繼續介紹BUILD大會里的內容&#xff1a;新的Teams API權限。這些新的權限讓開發者可以更加細粒度的設置權限。 之前有些開發人員有問過我&#xff0c;為什么Graph API的權限這么多&#xff0c;為什么不針對Teams弄一個總的權限&#xff0c;這樣不是更加簡單嗎&#xff1f;…