1. 程式人生 > 其它 >定時獲取微博熱搜爬蟲連線MySQL(專案)

定時獲取微博熱搜爬蟲連線MySQL(專案)

技術標籤:python

前言

這個專案的第三篇部落格,增加了定時爬取和日誌寫入,解決了一些穩定性的問題。

程式碼設計

# -*- encoding: utf-8 -*-
# ---------------------------------------------
# 微博熱搜
# ---------------------------------------------
import time
import re
import json
import sys
import copy
import pymysql
import requests#引入requests庫用於下載網頁
from
bs4 import BeautifulSoup#BeautifulSoup用於解析網頁 localtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())#獲取時間 try: data=requests.get("https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6").text#請求網站 except: print(localtime+'\t'+"爬取失敗!") soup=BeautifulSoup(
data,'html.parser')#使用BeautifulSoup工具 a=[]#建立一個空列表 index=[] try: db = pymysql.connect("xxx.xxx.xxx.xxx", "xxx", "xxx", "xxx", use_unicode=1,charset='utf8' ) cursor = db.cursor() except: print(localtime+'\t'+"開啟資料庫失敗!") try: for k in soup.
find_all('a',attrs={'href':re.compile('^/weibo?'),'target' : '_blank'}): #把熱度標題新增進空列表 sql = """INSERT INTO hot_date(NAME, URL, TIME) VALUES ("%s",'%s','%s')""" % (str(k.get_text().strip()),"https://s.weibo.com"+k.get('href'),localtime) try: cursor.execute(sql) db.commit() except: flag=1 db.close() print(localtime+'\t'+"存入成功!") except: print(localtime+'\t'+"存入失敗!")

說明

執行在linux上,用Crontab設定定時任務。教程
在這裡插入圖片描述
通過輸出重定向寫入日誌檔案
在這裡插入圖片描述

問題解決

1.執行錯誤

遇到了requests不能用的問題,在安裝了requests庫的情況下Linux無法執行
解決方法:增加try異常機制

2.Crontab執行錯誤

設定時使用絕對路徑

後記

接下來就是記錄結束時間和持續時間