新闻  |   论坛  |   博客  |   在线研讨会
大众点评爬虫方案
laical | 2020-11-04 17:42:36    阅读:83   发布文章

使用语言:

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数据库设置


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客