使用している言語は言いません。Java ランドでは、TagSoupと XPath を使用して、苦痛を最小限に抑えることができます。このブログの例があります(もちろん、必要に応じて XPath はさらに複雑になる可能性があります)。
URL url = new URL("http://example.com");
SAXBuilder builder = new SAXBuilder("org.ccil.cowan.tagsoup.Parser"); // build a JDOM tree from a SAX stream provided by tagsoup
Document doc = builder.build(url);
JDOMXPath titlePath = new JDOMXPath("/h:html/h:head/h:title");
titlePath.addNamespace("h","http://www.w3.org/1999/xhtml");
String title = ((Element)titlePath.selectSingleNode(doc)).getText();
System.out.println("Title is "+title);
XPath 式を外部化することをお勧めします。これにより、サイトが変更された場合にある程度の保護が得られます。
これは、このサイトのスクリーンスクレイピングに絶対に使用していない XPath の例です。まさか、私ではありません:
"//h:div[contains(@class,'question-summary')]/h:div[@class='summary']//h:h3"