查看: 1403|回复: 0

[经验] 实现爬虫的思路

[复制链接]

该用户从未签到

发表于 2021-4-24 12:08:26 | 显示全部楼层 |阅读模式
分享到:
网络爬虫通过程序模拟浏览器请求站点的行为,把网站返回的数据爬到本地,提取自己需要的数据,存储起来使用。

爬虫构成
1、确定目标网站

2、解析目标网站的数据信息

3、程序模拟用户发出http请求获取数据

4、从获取的数据中保存到本地,删选需要的相关数据

5、对获取到的数据根据自己的需求使用

注意
一般做爬虫都会加上请求头

User-agent:请求头中如果没有user-agent,目标网站可能将你当做一个非法用户

cookies:cookie用来保存登录信息

爬虫实践
以下是关于网络爬虫采集数据的实践操作,通过爬虫程序模拟用户分析网站采集数据解析数据保存数据。代码仅供参考:

  1. import org.json.JSONException;
  2. import org.json.JSONObject;
  3. import org.openqa.selenium.Platform;
  4. import org.openqa.selenium.Proxy;
  5. import org.openqa.selenium.firefox.FirefoxDriver;
  6. import org.openqa.selenium.firefox.FirefoxProfile;
  7. import org.openqa.selenium.htmlunit.HtmlUnitDriver;
  8. import org.openqa.selenium.remote.CapabilityType;
  9. import org.openqa.selenium.remote.DesiredCapabilities;

  10. import com.gargoylesoftware.htmlunit.DefaultCredentialsProvider;
  11. import com.gargoylesoftware.htmlunit.WebClient;

  12. public class FirefoxDriverProxyDemo
  13. {
  14.     // 代理隧道验证信息
  15.     final static String proxyUser = "username";
  16.     final static String proxyPass = "password";

  17.     // 代理服务器
  18.     final static String proxyHost = "t.16yun.cn";
  19.     final static int proxyPort = 31111;

  20.     final static String firefoxBin = "C:/Program Files/Mozilla Firefox/firefox.exe";

  21.     public static void main(String[] args) throws JSONException
  22.     {
  23.         System.setProperty("webdriver.firefox.bin", firefoxBin);

  24.         FirefoxProfile profile = new FirefoxProfile();

  25.         profile.setPreference("network.proxy.type", 1);


  26.         profile.setPreference("network.proxy.http", proxyHost);
  27.         profile.setPreference("network.proxy.http_port", proxyPort);

  28.         profile.setPreference("network.proxy.ssl", proxyHost);
  29.         profile.setPreference("network.proxy.ssl_port", proxyPort);

  30.         profile.setPreference("username", proxyUser);
  31.         profile.setPreference("password", proxyPass);


  32.         profile.setPreference("network.proxy.share_proxy_settings", true);


  33.         profile.setPreference("network.proxy.no_proxies_on", "localhost");


  34.         FirefoxDriver driver = new FirefoxDriver(profile);
  35.     }
  36. }              
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条



手机版|小黑屋|与非网

GMT+8, 2025-1-13 19:49 , Processed in 0.103032 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.