"); //-->
使用语言:
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数据库设置
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。