爬虫(一)(Jsoup乱码)

Jsoup乱码处理

jsoup在爬取网页的时候,如果不设置编码格式,可能会造成遇到生僻字的时候乱码
解决方法:
在爬取的时候加入网页对应的编码格式;


Document document = Jsoup.parse(setHeader(address).getInputStream(), "GBK", address);

---

public static HttpURLConnection setHeader(String urlStr) {
        URL url = null;
        HttpURLConnection connection = null;
        try {
            url = new URL(urlStr);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setUseCaches(Boolean.FALSE);
            connection.addRequestProperty("Connection", "close");
            connection.addRequestProperty("Referrer Policy","no-referrer-when-downgrade");
            //设置连接主机超时(单位:毫秒)
            connection.setConnectTimeout(8000);
            //设置从主机读取数据超时
            connection.setReadTimeout(8000);
            //设置cookie
        } catch (Exception e) {
            new RuntimeException(e);
        }
        return connection;
    }

jsoup只拿table中的数据不拿table的表头

在爬table元素的时候总是会遇到这样的情况,只想要从第二行开始的数据,而不要第一行的数据。
那么可以使用jsoup的伪选择器 :gt(n) 查找哪些元素的同级索引值大于n,比如: div p:gt(2)表示div的第三个p元素的内容

Elements elements = document.select("#pills-stable_https > table > tbody > tr:gt(0)");
  <tr> 
	 <td>免费ip</td> 
 	<td>端口</td> 
 	<td>匿名度</td> 
	 <td>类型</td> 
	 <td>位置</td> 
	 <td>响应速度(ms)</td> 
</tr>
<tr> 
	 <td>203.42.227.113:8080</td> 
	 <td>8080</td> 
	 <td>高匿</td> 
	 <td>HTTPS</td> 
	 <td>中国 湖南 永州 电信</td> 
	 <td>2.1</td> 
</tr>
<tr> 
	 <td>130.193.112.146:36923</td> 
	 <td>36923</td> 
	 <td>高匿</td> 
	 <td>HTTPS</td> 
	 <td>中国 新疆 哈密 联通</td> 
	 <td>3.28</td> 
</tr>
发布了13 篇原创文章 · 获赞 3 · 访问量 2747

猜你喜欢

转载自blog.csdn.net/yinyiyu/article/details/89848233