ブログパークのトップページを取得し、定刻に微信に送信します.
2214 ワード
彼女の要求に応じて、技術の動向をタイムリーに把握するために、わざわざこの爬虫類を書いて、毎日定刻にブログ園のトップページを登って微信に送りました.
Python3.4
Requests:要求 をサーバに送信する. BeautifulSoup 4:解析Html wxpy:微信インタフェース Schedule:タイマ
悪意のある攻撃行為を行わない できるだけ暇な時間にウェブサイトにアクセスして、アクセス頻度を制御して、悪意を持ってウェブサイトの資源 を消費しないでください.
環境:
Python3.4
サードパーティ製ライブラリ
コード#コード#
# -*-coding:utf-8 -*-
import requests
from requests import exceptions
from bs4 import BeautifulSoup as bs
import re
from wxpy import *
import schedule
import time
bot=Bot(cache_path=True)
#
def getHtml(pageIndex):
#
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
#pageIndex
payload={'CategoryType': 'SiteHome', 'ParentCategoryId': '0', 'CategoryId': '808', 'PageIndex': pageIndex, 'TotalPostCount': '4000'}
try:
r=requests.post('https://www.cnblogs.com/mvc/AggSite/PostList.aspx',data=payload,headers=headers)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except requests.RequestException as e:
return e.strerror
#
def sendblogmsg(content):
#
#my_friend = bot.friends().search('')[0]
my_friend=bot.file_helper
my_friend.send(content)
def job():
contents=''
#i
for i in range(1,3):
html=getHtml(i)
soup=bs(html,"html.parser")
blogs=soup.findAll("div",{'class':'post_item_body'})
for blog in blogs:
title=blog.find('h3').get_text()
summary=blog.find('p',{'class':'post_item_summary'}).get_text()
link=blog.find('a',{'class':'titlelnk'})['href']
content=' :'+title+'
:'+link+'
-----------
'
contents+=content
sendblogmsg(contents)
#
schedule.every().day.at("06:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)
bot.join()