java 爬虫登陆网页
发布网友
发布时间:2022-04-26 22:08
我来回答
共5个回答
热心网友
时间:2022-04-27 17:18
最简单的办法就是 在论坛页面审查元素,找到登录按钮,找到他的action,把它传到你的程序里面就好了,比如我现在回答你的问题,下面的提交回答按钮也会有一个action
追问你是指的‘alog-action’吗?那我怎么才能输入我的用户名和密码,然后出发这个action
追答提交动作是很有多种的 我不知道你说的论坛登录是用的哪一种,所以我也说不好
但是大多会有一个id 或者name 作为特殊的标记 然后在java脚本中写函数 还有的是用submit提交表单的方式上传信息.
所以具体怎么样还得你自己分析
至于用户名和密码,一样的审查元素找到这两个,一般是input type="USERNAME"跟"PASSWORD" value值就是输入的用户名密码,把你要输入的用户名密码传给value就好了
热心网友
时间:2022-04-27 18:36
在做爬虫时,遇到需要登陆的问题也比较常见,比如写脚本抢票之类的,但凡需要个人信息的都需要登陆,对于这类问题主要有两种解决方式:一种方式是手动设置 cookie ,就是先在网站上面登录,复制登陆后的 cookies ,在爬虫程序中手动设置 HTTP 请求中的 Cookie 属性,这种方式适用于采集频次不高、采集周期短,因为 cookie 会失效,如果长期采集的话就需要频繁设置 cookie,这不是一种可行的办法,第二种方式就是使用程序模拟登陆,通过模拟登陆获取到 cookies,这种方式适用于长期采集该网站,因为每次采集都会先登陆,这样就不需要担心 cookie 过期的问题。
热心网友
时间:2022-04-27 20:11
一个简单的
package webspider;
import
java.util.HashSet;
import java.util.PriorityQueue;
import
java.util.Set;
import java.util.Queue;
public class LinkQueue {
// 已访问的 url 集合
private static Set visitedUrl
= new HashSet();
// 待访问的 url 集合
private static Queue unVisitedUrl = new
PriorityQueue();
// 获得URL队列
public static Queue getUnVisitedUrl() {
return
unVisitedUrl;
}
// 添加到访问过的URL队列中
public static void addVisitedUrl(String url)
{
visitedUrl.add(url);
}
// 移除访问过的URL
public static void removeVisitedUrl(String url)
{
visitedUrl.remove(url);
}
// 未访问的URL出队列
public static Object unVisitedUrlDeQueue() {
return
unVisitedUrl.poll();
}
// 保证每个 url 只被访问一次
public static void addUnvisitedUrl(String url)
{
if (url != null && !url.trim().equals("") &&
!visitedUrl.contains(url)
&&
!unVisitedUrl.contains(url))
unVisitedUrl.add(url);
}
// 获得已经访问的URL数目
public static int getVisitedUrlNum() {
return
visitedUrl.size();
}
// 判断未访问的URL队列中是否为空
public static boolean unVisitedUrlsEmpty()
{
return unVisitedUrl.isEmpty();
}
}
配合极光HTTP使用更佳
热心网友
时间:2022-04-27 22:02
去论坛查看下页面源码,找到登录请求,模拟这个请求。
热心网友
时间:2022-04-28 00:10
逗