一、目标:
爬取博客园上的所有文章的标题,爬取不同页码的文章,将其在控制台输出。
二、要点:
模拟POST请求。实际请求地址。
三、步骤:
-
按F12查看源码,发现翻页处链接没有具体链接而是动态的地址,即在此页面不能直接取到所有的网页链接。
-
点击翻页后按 F12 查看源码可发现实际请求地址。
-
模拟POST请求。
//模拟POST请求
Request request = new Request(URL_LIST);
request.setMethod(HttpConstant.Method.POST);
//点击post请求右键选择复制 post 数据
request.setRequestBody(HttpRequestBody.json(
"{CategoryType:'SiteHome',ParentCategoryId:0,CategoryId:808,PageIndex:"+
pageNum +",TotalPostCount:4000,ItemListActionName:'PostList'}",
"utf-8"));
四、代码:
package byMyself;
import java.util.List;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Request;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.model.HttpRequestBody;
import us.codecraft.webmagic.processor.PageProcessor;
import us.codecraft