私は簡単な質問があります。私は別のブログから記事を収集するphpでウェブサイトを構築しようとしています。どのようにPHPでこれをコード化するだろうか?何らかのタイプの正規表現が必要でしょうか?私がする必要があるのは、特定のページから記事を取得することだけです。例:http://rss.news.yahoo.com/rss/education 誰も助けることができますか?ありがとうございました。記事を収集するPHPでウェブサイトを構築するには?
0
A
答えて
0
各サイトごとにパーサーを作成する必要があります。このようなもの...
class Parser_Article_SarajevoX extends Parser_Article implements Parser_Interface_Article {
protected static $_url = 'http://www.sarajevo-x.com/';
public static function factory($url)
{
return new Parser_Article_SarajevoX($url);
}
protected static function decode($string)
{
return iconv('ISO-8859-2', Kohana::$charset, $string);
}
/**
* SarajevoX Article Parser constructor
*
* @param string article's url or uri
*/
public function __construct($url)
{
$parsed = parse_url($url);
if ($path = arr::get($parsed, 'path'))
{
// make url's and uri's path the same
$path = trim($path, '/');
$exploded = explode('/', $path);
if (count($exploded == 4))
{
list($this->cat_main, $this->cat, $nita, $this->id) = $exploded;
}
elseif (count($exploded) == 3)
{
list($this->cat, $nita, $this->id) = $exploded;
}
else
{
throw new Exception("Path not recognized: :url", array(':url' => $url));
}
// @todo check if this article is already imported to skip getting HTML
$html = HTML_Parser::factory(self::$_url.$path);
$content = $html->find('#content-main .content-bg', 0);
// @freememory
$html = NULL;
$this->title = self::decode($content->find('h1', 0)->innertext);
// Loop through all inner divs and find the content
foreach ($content->find('div') as $div)
{
switch ($div->class)
{
case 'nadnaslov':
$this->suptitle = strip_tags(self::decode($div->innertext));
break;
case 'uvod':
$this->subtitle = strip_tags(self::decode($div->innertext));
break;
case 'tekst':
$pic_wrap = $div->find('div[id="fotka"]', 0);
if ($pic_wrap != FALSE)
{
$this->_pictures[] = array
(
'url' => self::$_url.trim($pic_wrap->find('img', 0)->src, '/'),
'desc' => self::decode($pic_wrap->find('div[id="opisslike"]', 0)->innertext),
);
// @freememory
$pic_wrap = NULL;
}
$this->content = strip_tags(self::decode($div->innertext));
break;
case 'ad-gallery' :
foreach ($div->find('div[id="gallery"] .ad-nav .ad-thumbs ul li a') as $a)
{
$this->_pictures[] = array
(
'url' => self::$_url.trim($a->href, '/'),
'desc' => self::decode($a->find('img', 0)->alt),
);
// @freememory
$a = NULL;
}
break;
}
}
echo Kohana::debug($this);
return;
}
throw new Exception("Path not recognized: :url", array(':url' => $url));
}
}
0
RSSフィードはXMLなので、xml_parse_into_struct
のようなものを使ってこのフィードの解析を開始します。このページの例は、あなたを動かすのに十分なはずです。
0
各ブログには、関連するrss xmlファイルがあります。ブログページには、ヘッダーにこのXMLファイルを指し示す「リンク」タグがあります。これにより、ユーザーはこれらのRSSフィードを購読することができます。 rss xmlファイルには、タイトル、説明、公開日、URLなどのブログエントリごとに必要なすべてのデータが含まれます。 PHPのsimpleXMLクラスを使用して、XMLコンテンツをsimpleXMLオブジェクトにロードすることができます。その後、必要なRSSフィードの各ピースにアクセスできます。
関連する問題
- 1. ダイナミックなウェブサイトでの情報収集アーキテクチャの構築と選択
- 2. Djangoでウェブサイトを構築するには?
- 3. Node.jsでウェブサイトを構築するには?
- 4. 記事/ページを追加/編集できる管理者のウェブサイト
- 5. PHPで収集するリモートコードカバレッジ
- 6. joomlaに特集記事を表示するためのPHPコード
- 7. PHPでツリーを構築するには?
- 8. Backendlessでウェブサイトを構築する
- 9. angularjsでウェブサイトを構築する2
- 10. PHP - 管理者の編集記事ページ
- 11. PHPローテータを構築するには
- 12. ウェブサイトを構築せずにMSBuildでウェブサイトの参照を解決するには?
- 13. 安全なウェブサイトを構築する
- 14. ウェブサイトを構築するためのパス
- 15. ReactJsで反応性の高いウェブサイトを構築するには
- 16. セキュリティ上の懸念事項ウェブサイトの構築について
- 17. 特集記事を表示
- 18. mongooseとnodejsの記事を編集するには
- 19. javascriptで値を収集するには?
- 20. Android Appにウェブサイトの記事を取得
- 21. symfonyでdoctrine/mongodbとの集約クエリを構築するには?
- 22. Google Cloudでウェブサイトを構築するcloudqlで計算する
- 23. neo4jデータベースでphpセッションハンドラを構築する
- 24. プログラム可能なウェブサイトを構築するには?
- 25. Hudsonで事前構築構成
- 26. ウェブサイト構築のヘルプ
- 27. Firefoxでウェブサイトを構築するにはどうすればよいですか?
- 28. XMLHttpRequestのインスタンスを収集するには?
- 29. Wordpress特集記事カテゴリコンテンツスライダー/サイクル
- 30. PHP記事を作成
記事を収集することはどういう意味ですか?リンクをウェブページに保存しますか?ウェブページのソースコードですか?テキストのみのコンテンツですか?タイトル、著者、記事本文を分ける必要がありますか?これは広すぎる/漠然とした質問です。これを自分で実装し、問題が発生したときに具体的な質問を投稿してください。 –
@Lèse:私が理解しているところから、AustinはXMLを解析したいと考えています。それ以後、彼がそれに従うことは彼自身の責任である。 –
HTML/XMLパーサー(とXPath)以外の正規表現は使用しないでください... –