南燕新聞自動生成軟體 爬蟲程式

2021-07-08 20:10:36 字數 3877 閱讀 9701

南燕新聞自動生成軟體——爬蟲程式

自己編寫爬蟲程式實現對北京大學國際法學院新聞的自動爬取和資料庫儲存:

國法新聞主頁:

# encoding: utf-8

import urllib2

from bs4 import beautifulsoup

import mysqldb

import mysqldb.cursors

import time

import sys

reload(sys)

sys.setdefaultencoding('utf8')

#獲取新聞頁面總數

def getpagecount():

url = ""

response = urllib2.urlopen(url)

html = response.read()

soup = beautifulsoup(html, "lxml")

#print soup

#獲取總頁數

pages = soup.find(attrs=)

print pages

page = pages.find_all('li')

#檢視網頁**,倒數第二個元素為最後一頁序號

pagecount = page[-2].string

#print pagecount

return pagecount

#獲取每頁中每個新聞的url

def getnewsurls(pagecount):

#print type(pagecount)

urls =

for page in range(int(pagecount)):

#print type(page)

url = "" + "%e6%96%b0%e9%97%bb%e4%b8%ad%e5%bf%83/stl%e5%8a%a8%e6%80%81" + "/page/%d/" % (page + 1)

response = urllib2.urlopen(url)

html = response.read()

soup = beautifulsoup(html, "lxml")

url_all = soup.find_all(class_='uk-article')

#print url_all

for url_item in url_all:

#print url_item['data-permalink']

url = url_item['data-permalink']

#print urls

return urls

#解析每個網頁的內容

def parsenews(urllist):

news =

for url in urllist:

try:

newsitem = {}

response = urllib2.urlopen(url)

html = response.read()

soup = beautifulsoup(html, "lxml")

article = soup.find(attrs=)

#print article

title = soup.find(attrs=).string

#print title

#content包含重複標題,位於內,要去除

content = soup.find(attrs=)

#print content

newsitem['title'] = title.encode('utf-8')

#日期在url列表也就是標題頁顯示,沒有再內容頁顯示,需單獨獲取

newsitem['date'] = '2015-12-05'

newsitem['content'] = content.encode('utf-8')

newsitem['clicks'] = 0

#print newsitem

#break

#有乙個頁面只有乙個 pdf 檔案,跳過

except attributeerror:

pass

#print news

return news

#將資料存入資料庫

def newstomysql(newslist):

# 開啟資料庫連線

db = mysqldb.connect("localhost","root","","opensns", charset = 'utf8')

# 使用cursor()方法獲取操作游標

cursor = db.cursor()

sql_checkdate = "select create_time from news where category=9 order by create_time desc limit 1"

cursor.execute(sql_checkdate)

result = cursor.fetchall()

if (result):

latest_date = result[0][0]

else:

latest_date = 0

#print result[0][0]

for item in newslist:

#print item['content'].encode('gbk')

#print '\n'

#print chardet.detect(item['content'])

#將datetime轉換為時間戳:

a = item['date']

#將其轉換為時間陣列

timearray = time.strptime(a, "%y-%m-%d")

#轉換為時間戳

timestamp = int(time.mktime(timearray))

if (timestamp > latest_date):

sql = "insert into news(uid, title, category, status, view, dead_line, create_time) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s')" % ('1', item['title'], '9', '1', item['clicks'] ,'2147483640', timestamp)

try:

# 執行sql語句

cursor.execute(sql)

#print "id of last record is ", int(cursor.lastrowid) #最後插入行的主鍵id

sql_detail = "insert into news_detail(news_id, content) values (%d, '%s')" % (int(cursor.lastrowid), item['content'])

cursor.execute(sql_detail)

# 提交到資料庫執行

db.commit()

except:

# rollback in case there is any error

db.rollback()

# 關閉資料庫連線

db.close()

if __name__ == '__main__':

pagecount = getpagecount()

#print pagecount

urls = getnewsurls(pagecount)

#print len(urls)

news = parsenews(urls)

#print news

newstomysql(news)

南燕新聞自動生成軟體 opensns使用

1.安裝opensns前,現需要安裝配置環境,包括伺服器,php和mysql,單獨安裝和配置很麻煩,這裡使用整合包 2.安裝swmpserver,即整合apache web伺服器 php直譯器以 及mysql資料庫的整合軟體包,免去了開發人員將時間花費在繁瑣的配置環境過程。安裝過程中,一直出現 無法...

自動生成巨集程式軟體 是否有自動生成字幕的軟體?

推薦大家用一些正經工具,比如我們。自誇 繪影字幕的初衷就是為大家提供最便捷的自動新增字幕工具。我們產品經理在規劃產品的時候,也是最大程度站在使用者角度設計功能,那必須方便好用!這是一整套過程,所有步驟都簡潔明瞭,應該都沒什麼問題。跟大家說一些在做字幕時,值得注意的地方和可以提高效率的tips。1.識...

python自動生成字幕 自動生成字幕軟體?

更新 經過提示發現autosub也不太好用了,我最近發現掛了 也沒有用,如果急需轉錄字幕文字的話建議還是選用其他付費服務吧吧。或者您可以去autosub的github主頁提交issue 那這樣 youtube 自動生成字幕可能就是最划算的了。用法 準備乙個有python 2的機器環境。然後pip i...