python批量查询网站名称

前言:最近一段时间老大给我一大批网站域名,让我帮忙查询这些网站域名对应的网站名称。作为一个IT屌丝,这种事情不可能手动一个一个去查询,于是决定写个自动化脚本去查询。

思路:网上有很多域名查询的网站,但是大部分都是要验证码的,这样的话对于编写脚本的难度就增加了很多。千辛万苦找到了一个http://icp.chinaz.com/。于是就开始编写脚本,由于近段时间在学习selenium所以就用它的框架去写。

功能:读取txt文件中的域名,然后查询域名对应的网站名称,查询结束后把结果写入excel表格里。

废话不多说,直接上代码:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
import xlwt

class Myurltest(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://icp.chinaz.com/"
        self.verificationErrors = []
        self.accept_next_alert = True
    
    def test_myurl(self):
        driver = self.driver
        driver.get(self.base_url + "/")
        driver.maximize_window()
        f=open("newurl.txt",'rb+')
        line=f.readlines()
        book = xlwt.Workbook(encoding='utf-8',style_compression=0)
        sheet=book.add_sheet(u'data',cell_overwrite_ok=True)
        for i in range(len(line)):
            driver.find_element_by_id("s").clear()
            driver.find_element_by_id("s").send_keys(line[i])
            driver.find_element_by_id("search").click()
            try:
                driver.implicitly_wait(0.5)
                data=driver.find_element_by_xpath("//div/ul[@id='first']/li[4]/p").text
            except NoSuchElementException,e:
                sheet.write(i,0,line[i])
                sheet.write(i,1,u"没查到")
                print u"没查到"
                continue
            print line[i],
            print data
            sheet.write(i,0,line[i])
            sheet.write(i,1,data)
        book.save('myurl.xls')
    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True
    
    def is_alert_present(self):
        try: self.driver.switch_to_alert()
        except NoAlertPresentException, e: return False
        return True
    
    def close_alert_and_get_its_text(self):
        try:
            alert = self.driver.switch_to_alert()
            alert_text = alert.text
            if self.accept_next_alert:
                alert.accept()
            else:
                alert.dismiss()
            return alert_text
        finally: self.accept_next_alert = True
    
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值