phpを勉強し始め2ヶ月の初心者です。
練習に、スクレイピングサイトを作っているのですが、質問させてください。
とあるサイトから住所と電話番号をスクレイピングするサイトを作っているのですが、正規表現を利用しています。
if(preg_match ("/(東京都|北海道|京都府|大阪府|.{6,9}県)((?:四日市|廿日市|野々市|かすみがうら|つくばみらい|いちき串木野)市|(?:杵島郡大町|余市郡余市|高市郡高取)町|.{3,12}市.{3,12}区|.{3,9}区|.{3,15}市(?=.*市)|.{3,15}市|.{6,27}町(?=.*町)|.{6,27}町|.{9,24}村(?=.*村)|.{9,24}村)(.*)/",$url_data,$matches)){ echo "住所 : ".$matches[0]; }
このようなソースコードでスクレイピングをしているのですが、成功率が半々くらいです。
というのも、とあるサイトでは成功するのに、とあるサイトではなにも拾ってこない。
失敗したサイトのソースコードを取り出して、原因を正規表現チェッカーで細かく調べてみたところ、
「javascript:」 「style=」 「 onMousever」 「'」 「<link」
で止まっていました。
「style=」や「'」などは、当然、全てのサイトのソースコードにあると言えます。そして、スクレイピングに成功しているサイトにもあります。
なのになぜ、とあるサイトでだけ、止まってしまうのでしょうか。
御知恵を貸していただけませんでしょうか。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/19 03:01
2017/04/19 03:05
2017/04/19 03:16