使用语言:
JAVA
使用框架:
Jsoup
使用准备:
大众点评,饿了么,美团这些APP反爬策略很严格,需要设置HTTP代理和随机UA优化才可以采集数据,亿牛云代理客服可以提供真实随机UA
IP设置:
import java.io.IOException;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class Demo
{
// 代理验证信息
final static String ProxyUser = "username";
final static String ProxyPass = "password";
// 代理服务器(产品官网 www.16yun.cn)
final static String ProxyHost = "t.16yun.cn";
final static Integer ProxyPort = 31111;
使用随机UA:
请求网站时加上随机UA
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3322.104 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.1892.11 Safari/537.36
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_8_4 rv:2.0; tr-TR) AppleWebKit/534.37.6 (KHTML, like Gecko) Version/4.0.4 Safari/534.37.6
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
用户cook登陆:
可以设置IP随机数获取cookies,保存cookies,使用cookie登陆
# 访问三次网站,使用相同的Session(keep-alive),均能够保持相同的外网IP
s = requests.session()
# 设置cookie
cookie_dict = {"JSESSION":"123456789"}
cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
s.cookies = cookies
for i in range(3):
for url in targetUrlList:
r = s.get(url, proxies=proxies)
print r.text
爬虫异常处理:
// 处理异常、其他参数
Document doc = Jsoup.connect(url).timeout(3000).header(ProxyHeadKey, ProxyHeadVal).proxy(proxy).get();
if(doc != null) {
System.out.println(doc.body().html());
}
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws Exception
{
大众点评数据采集和储存:
存储店铺数据,利用MongoDB数据库设置
版权声明:本文为Laicaling原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。