java给爬虫设置User-Agent(绕过最表面的反爬虫机制)

今天在爬my电影评分时发现访问被控制,但浏览器依旧能访问,查阅后得知因为java程序与浏览器访问不同,一些采取了简单采反爬虫机制的网站可以拒绝这些小爬虫的访问。my电影也用了不少反爬虫策略,比如说票房、评分人数都转换了编码让你不好直接爬取,但我目前不需要那一部分。

在给java程序设置了User-Agent后便能进行爬取(想要爬取的放慢点速度吧。。双方互相都体谅一下)

URL realUrl=new URL(url);
//初始化一个链接到那个url的连接

URLConnection connection=realUrl.openConnection();

//设置User-Agent 加上下面这句后便可进行爬取

connection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//开始实际的连接
connection.connect();
Java中修改User-Agent可以通过设置HTTP请求头来实现。具体步骤如下: 1. 创建一个HTTP连接对象,例如使用Java中的URLConnection类或者Apache HttpClient库中的HttpClient类。 2. 通过连接对象获取一个HTTP请求对象,例如使用URLConnection类中的getOutputStream方法或者HttpClient类中的HttpGet/HttpPost类。 3. 在HTTP请求对象中设置User-Agent请求头,例如使用URLConnection类中的setRequestProperty方法或者HttpClient类中的setHeader方法。 4. 发送HTTP请求,例如使用URLConnection类中的getInputStream方法或者HttpClient类中的execute方法。 以下是一个使用URLConnection类修改User-Agent的示例代码: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class Main { public static void main(String[] args) throws Exception { String url = "https://www.example.com"; String userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"; URLConnection conn = new URL(url).openConnection(); conn.setRequestProperty("User-Agent", userAgent); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); } } ``` 注意:修改User-Agent可能会违网站的使用协议,因此在使用时需要注意合法性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值