今日学习内容
一、获取初始页面
二、Jsoup模拟浏览器
Document doc = Jsoup.connect(BASE_URL)
.header("Accept_Encoding", "Accept_Encoding")
.header("Accept_Language","Accept_Language")
.header("Host", "Host")
.header("Cookie", "Cookie")
.userAgent(Agent)
.timeout(3000)
.get();
三、初始化三个容器
容器bloomFilter作用:过滤爬取到的网址信息;
容器middleUrl作用:存储过滤之后的中间页面网址信息;
容器finalUrl的作用:存储过滤之后的最终页面网址信息。
四、解析页面,取出所有包含href属性的a标签,放到Elements中。
Elements urls = doc.select("a[href]");
for (int i = 0; i < urls.size(); i++) {
urlFilter(urls.get(i).attr("href"));}
五、遍历Elements取出每一个Element里面href的属性值。
六、处理URL
1、过滤bloomFilter、middleUrl、finalUrl
2、存放到对应的容器内(编写对应的正则表达式,将网址匹配到对应的容器中。正则表达式)
七、循环中间页面容器,处理中间界面(重复第6-7步,直到最终页面容器达到要求或网站被全部抓取。)
八、循环最终页面容器,处理最终页面,获取数据。使用JDBC将数据存放到数据库内。
遇到的问题:①正则表达式的学习
②程序运行只返回中间页面信息或最终页面信息
③爬取多次需要注意cookie的更换