質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

1769閲覧

C# HPの更新を検知して一度だけ処理をする

C-shosinka

総合スコア32

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/06/19 11:51

###困っていること
インターネットから情報を取得して、それをツイートするようなソフトを作成中なのですが、タイマー処理を行っていて、HPに更新があった場合のみにツイートするようにしたいです。今のままだと、何回もツイートしようとしてエラーで返されてしまいます(403エラー 同じ文章ツイートx)
どのようにしたら、HPに更新があった場合に1度だけのタイマー処理をするのでしょうか。初心者なのであまりわからないです。コード貼ってくださるとありがたいです。よろしくお願いします。

##使用パッケージ
HtmlAgilityPack
CoreTweet

###該当のソースコード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using HtmlAgilityPack;

namespace Eathquake_tweet
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e) { const string url = "http://www.weather-service.co.jp/weather/earthquake/"; WebClient web = new WebClient(); web.Encoding = System.Text.Encoding.UTF8; string html = web.DownloadString(url); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(html); HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(@"/html[1]/body[1]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/div[2]"); foreach (HtmlNode node in nodes) { var tokens = CoreTweet.Tokens.Create("xxxxxxxxxxx" , "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" , "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" , "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); //↑はAPIキー・AccessTokenなどがはいります。 var text = node.InnerText; tokens.Statuses.Update(new { status = text }); } } }

}

###補足情報(言語/XPath取得方法)
Visual Studio 2017 C#
Xpath取得には HtmlAgilityPackTesterを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

作ったプログラムが単発で起動する様な物なのであれば、取得した text を毎回ファイルやDBに保存しておき、毎回前回と異なるか確認すると良いです。

投稿2017/06/20 01:27

mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

C-shosinka

2017/06/20 02:29

なるほど!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問