YXK 发表于 2019-8-1 19:04

使用python 对 xlsx操作 以及使用selenium对网站后台截图

本帖最后由 YXK 于 2019-8-1 19:08 编辑

写码不易........给波分吧!
需要用到的python库
pip install xlrd
pip install selenium

安装webdriver
各大浏览器webdriver地址可参见:https://docs.seleniumhq.org/download/
Firefox:https://github.com/mozilla/geckodriver/releases/
Chrome:https://sites.google.com/a/chromium.org/chromedriver/ 或者
http://chromedriver.storage.googleapis.com/index.html
IE:http://selenium-release.storage.googleapis.com/index.html
注:webdriver需要和对应的浏览器版本以及selenium版本对应下面是源码
功能是读取一个表格里面的值 并以数组的方式返回
import xlrd
def getUrl(dizhi):
    data = xlrd.open_workbook(dizhi) #文件全路径
    table=data.sheet_by_index(0)
    nrows = table.nrows
    all_url=[]
    for i in range(0,nrows):
      call_url = table.cell(i, 3).value #取字段3的值
      all_url.append(call_url) #加入数组
    return all_url

https://static.52pojie.cn/static/image/hrline/line1.png
通过以上代码获取到每个微博URL 然后用selenium进行后台截图
from xlrdtest import getUrl #引用自写的方法
from selenium import webdriver
from time import sleep
wenjianDizhi = "C:\\Users\\Administrator\\Desktop\\网安工作\\1.xlsx"
allUrl = getUrl(wenjianDizhi)
options = webdriver.ChromeOptions()
options.add_argument('--kiosk')
options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=options)
driver.set_window_size(1400,900) #设置浏览器宽高
i = 1
for i in range(1,len(allUrl)):
    driver.get(str(allUrl))
    sleep(5)
    picture_url = driver.get_screenshot_as_file('imgs\\%s.png'%i)
    if picture_url == True:
      print("%s:截图成功!" %allUrl)
print("截图全部完成....")
driver.quit()

jidesheng6 发表于 2019-8-1 21:20

https://www.cnblogs.com/beginner-boy/p/7239696.html -python对excel的操作
https://www.cnblogs.com/themost/p/6900852.html -selenium具体详解
https://www.cnblogs.com/liu-ke/p/7767484.html?t=1509631163030 -selenium对具体元素进行截图
https://blog.csdn.net/lykio_881210/article/details/80915882 -selenium对弹窗的处理
对于excel我觉得应该发全或者找个地址,这些三方模块说实在话用的少很少刻意记,用的多就熟悉了,我属于前者所以收藏了些链接
也谢谢楼主分享,很受用

YXK 发表于 2019-8-6 09:52

wxz0716 发表于 2019-8-1 22:42
你好,我用pandas处理完excel保存后发现边框没了,怎么能在保存的时候自动在有内容的单元格上加上边框呢?

def setStyle(name, height,color, bold=False):
    style = xlwt.XFStyle()# 初始化样式

    font = xlwt.Font()# 为样式创建字体
    # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁
    font.name = name
    # 设置字体颜色
    font.colour_index = color
    # 字体大小
    font.height = height
    # 定义格式
    style.font = font

    # borders.left = xlwt.Borders.THIN
    # NO_LINE: 官方代码中NO_LINE所表示的值为0,没有边框
    # THIN: 官方代码中THIN所表示的值为1,边框为实线
    borders = xlwt.Borders()
    borders.left = color
    borders.left = xlwt.Borders.THIN
    borders.right = color
    borders.top = color
    borders.bottom = color

    # 定义格式
    style.borders = borders

    return style

if __name__ == '__main__':
    # 创建工作簿,并指定写入的格式
    f = xlwt.Workbook(encoding='utf8')# 创建工作簿

    #创建sheet,并指定可以重复写入数据的情况.设置行高度
    sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)

    # 控制行的位置
    column = 0
    row = 0
    # 生成第一行
    for i in range(0, 100):
      # 参数对应:行,列,值,字体样式(可以没有)
      sheet1.write(column, row, i, setStyle('汉仪瘦金书繁', 400, i, True))

      # 这里主要为了控制输入每行十个内容。为了查看
      row = row + 1
      if row % 10 == 0:
            column = column + 1
            row = 0
    f.save(r'E:\xlwtExCEL.xls')# 保存文档

zenith99 发表于 2019-8-1 20:15

有点意思,谢谢楼主分享技术

onlyjim 发表于 2019-8-1 20:31

YXK 发表于 2019-8-1 21:28

jidesheng6 发表于 2019-8-1 21:20
https://www.cnblogs.com/beginner-boy/p/7239696.html -python对excel的操作
https://www.cnblogs.com/th ...

谢谢您提供的链接..非常受用.

12416436 发表于 2019-8-1 22:18

目前才学到装饰器,感觉有点绕头,看到你的又有动力,每一位前辈都是我前进动力,加油

wxz0716 发表于 2019-8-1 22:42

你好,我用pandas处理完excel保存后发现边框没了,怎么能在保存的时候自动在有内容的单元格上加上边框呢?

z1981z1981 发表于 2019-8-2 08:45

这是干嘛的?

hjm350427 发表于 2019-8-2 09:12

太好了,给我提供下参考。

pymoji 发表于 2019-8-2 09:24

selenium还是很不错的,最近在用,问题是我的加了 headless几乎就不动了……可能是我用32位python的问题吧……,这个不错
页: [1] 2
查看完整版本: 使用python 对 xlsx操作 以及使用selenium对网站后台截图