批量网站访问检测
⑴ python如何批量同时检测网址可用性
多线程,目前的运行时间是由网络返回时间决定的,如果你访问的网址不是来自一个网址,没有并发访问数限制,就可以用多线程来提高同时访问的网址数,运行总时间就不是一个串联关系了。不会的话网络一下学习一下就OK了。
⑵ 急,怎么批量从网站得到查询结果呢
你如果会用java的话,执行下面的程序,就可以从Baii批量得到查询结果,
用法:
C:/urltest_files/test_inFile.txt的文件中写入 要查询 的关键字,每行一个,(当然也可以从DB中读取 关键字,改一下代码就可以了)
他就会把查询结果一HTML形式保存到C:/urltest_files/文件中。
因为每个网站都不一样,不知道他是不是适用于你的网站。
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
try {
String baseUrl = "http://www..com/s?wd=";
String dir = "C:/urltest_files/";
File inFile = new File(dir + "test_inFile.txt");
File outFile = new File(dir + "test_outFile.txt");
if (!inFile.exists()) {
return;
}
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(outFile), "GB2312");
Scanner scan = new Scanner(inFile);
int cnt = 0;
while (scan.hasNextLine()) {
cnt++;
String line = scan.nextLine();
try {
URL url = new URL(baseUrl + URLEncoder.encode(line, "GB2312"));
System.out.println(url);
String htmlFile = dir + "result_" + cnt + ".html";
osw.write("KEY: \t" + line + "\r\n");
osw.write("FILE: \t" + htmlFile + "\r\n\r\n");
OutputStreamWriter htmlOut = new OutputStreamWriter(new FileOutputStream(htmlFile), "GB2312");
InputStream ins = url.openStream();
Scanner htmlScan = new Scanner(ins, "GB2312");
while (htmlScan.hasNextLine()) {
htmlOut.write(htmlScan.nextLine() + "\r\n");
}
htmlScan.close();
htmlOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
scan.close();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
⑶ Python批量判断网站是否能访问
#coding:utf-8
#author:www.chenhaifei.com
import requests #打开
import time,random #控制时间
import sys #专门乱码的
reload(sys)
sys.setdefaultencoding(‘utf-8’)
headers={
‘User-Agent’:’Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36′,
}
url=’http://www.chenhaifei.com/’ ##检测的url
cont = requests.get(url,allow_redirects = False).status_code ##allow_redirects = False不检测跳转后的状态码
print cont
time.sleep(0.5)
上面是单个判断url状态码的,你可以把想要检测的url放在一个txt里面,这样就可以循环检测了。