webmagic定位链接写法
时间: 2023-07-14 22:10:25 浏览: 125
Python中那些 Pythonic的写法详解
在WebMagic中,可以使用XPath或CSS选择器来定位链接元素。
1. 使用XPath定位链接:
- 通过标签名定位:`//a`,例如:`//a`
- 通过文本内容定位:`//a[text()='link text']`,例如:`//a[text()='Click here']`
- 通过属性定位:`//a[@attribute='value']`,例如:`//a[@href='http://example.com']`
2. 使用CSS选择器定位链接:
- 通过标签名定位:`a`,例如:`a`
- 通过属性定位:`a[attribute='value']`,例如:`a[href='http://example.com']`
在WebMagic中,可以使用`Html.xpath()`方法和`Html.css()`方法来进行链接元素定位。下面是一个示例:
```java
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
public class MyPageProcessor implements PageProcessor {
private Site site = Site.me();
@Override
public void process(Page page) {
// 使用XPath定位链接
String link = page.getHtml().xpath("//a[text()='Click here']/@href").get();
System.out.println("Link: " + link);
// 使用CSS选择器定位链接
String link2 = page.getHtml().css("a[href='http://example.com']").get();
System.out.println("Link2: " + link2);
}
@Override
public Site getSite() {
return site;
}
public static void main(String[] args) {
Spider.create(new MyPageProcessor())
.addUrl("http://example.com")
.run();
}
}
```
上述代码中,`process()`方法中使用了XPath和CSS选择器来定位链接元素,并通过`get()`方法获取链接的内容。你可以根据具体的网页结构和需求来选择合适的定位方式。
阅读全文