标题: [文本处理] 如何提取网页中指定的网址,实现短网址直达功能,求批处理 [打印本页]
作者: 447219071 时间: 2017-12-2 10:52 标题: 如何提取网页中指定的网址,实现短网址直达功能,求批处理
求批处理,谢谢:
发现个新问题,这个转址居然用wget.exe下不下来,举例网址 dd.ma/mE0NUHSi
网页源码见附件,提取网址(网址任意的)并打开如下图红色部分所示,注意,网址并不固定不限是如下百度的(如其它任意形式的网址),但都是这个形式而已:
作者: ivor 时间: 2017-12-2 11:36
回复 1# 447219071 - # -*- coding:utf-8 -*-
- # 需下载Python 3.5, bs4
- # pip -install bs4
-
-
- import bs4, os
- import urllib.request as url
-
- try:
- #文件路径
- file = "file:///D:/robot/desk/Script/a.txt"
- req = url.urlopen(file)
- soup = bs4.BeautifulSoup(req,'html.parser')
- for i in soup.find_all('a'):
- if i.string == '点击打开' or i.string == '点击这里进入':
- Url = url.unquote(i.get('href'))
- print("%s: %s" % (i.string,Url))
- os.system("start %s" % Url)
- except:
- print("文件不能读取")
- pass
- input("回车结束")
复制代码
作者: lifei259 时间: 2017-12-2 11:47
本帖最后由 lifei259 于 2017-12-4 13:38 编辑
- @echo off
- for /f "tokens=9 delims=^=^> " %%a in ('type,a.txt^|find "href="') do set "a=%%a"
- start "" %a%ping 127.1 -n 10
- pause
复制代码
我更新了 你可以试试,等十秒打开一个窗口。
作者: 447219071 时间: 2017-12-2 14:47
回复 2# ivor 是求批处理,谢谢
作者: 447219071 时间: 2017-12-2 14:48
回复 3# lifei259
这是要打开的还原地址没错,但是其它网页代码也与此类似,但要得到的网址并不一定是百度的
作者: yhcfsr 时间: 2017-12-2 19:39
- @echo off&setlocal enabledelayedexpansion
- set "str1=http:"
- set "str2=""
- (for /f "delims=" %%a in ('findstr "!str1!.*!str2!" "A.txt"') do (
- set "str=#%%a"
- set "str=!str:%str1%=$!"
- for /f "tokens=2 delims=$" %%i in ("!str!") do set "str=%str1%%%i"
- set "str=!str:%str2%=*!"
- for /f "tokens=1 delims=*" %%j in ("!str!") do echo;%%j
- ))>temp.txt
- pause
复制代码
获取所有HTTP开头的网址,没有对重复网址进行甄别。
作者: codegay 时间: 2017-12-3 01:06
python3 + selenium + chrome浏览器- # -*- coding: utf-8 -*-
- """
- Created on Sun Dec 3 00:40:35 2017
- @author: codegay
- python3 & 编辑器 == spyder
- """
-
- from time import sleep
- from selenium import webdriver
- # appdata = environ["LOCALAPPDATA"] + r"\Google\Chrome\User Data"
- appdata = "c:/chrome-selenium"
- options = webdriver.ChromeOptions()
-
- options.add_argument("user-data-dir=" + appdata)
- # options.add_argument("headless")
- options.add_argument("disable-gpu")
-
- ddurl = "http://dd.ma/mE0NUHSi"
-
- chrome = webdriver.Chrome(chrome_options=options)
- chrome.get(ddurl)
- sleep(10)
- try:
- geturl = chrome.find_element_by_link_text("点击这里进入")
- except:
- print("异常错误或者找不到元素")
- exit()
-
- url = geturl.get_property("href")
-
- print("url:", url)
-
- chrome.get(url)
复制代码
作者: codegay 时间: 2017-12-3 07:47
优化了一下。通过id和tag定位,这样不用等待JS的那个倒计时。- # -*- coding: utf-8 -*-
- """
- Created on Sun Dec 3 00:40:35 2017
- @author: codegay
- python3 & 编辑器 == spyder
- """
-
- from time import sleep
- from selenium import webdriver
- # appdata = environ["LOCALAPPDATA"] + r"\Google\Chrome\User Data"
- appdata = "c:/chrome-selenium"
- options = webdriver.ChromeOptions()
-
- options.add_argument("user-data-dir=" + appdata)
- # options.add_argument("headless")
- # options.add_argument("disable-gpu")
-
- ddurl = "http://dd.ma/mE0NUHSi"
-
- chrome = webdriver.Chrome(chrome_options=options)
- chrome.get(ddurl)
- sleep(1)
- try:
- geturl = chrome.find_element_by_id("btn_open")
- geturl = geturl.find_element_by_tag_name("a")
- except Exception as e:
- print("异常错误或者找不到元素:")
- print(e)
- exit()
-
- url = geturl.get_property("href")
-
- print("url:", url)
-
- chrome.get(url)
复制代码
作者: 447219071 时间: 2017-12-4 08:16
回复 8# codegay
可能我使用的是WINDOWS系统的原因,生成批处理运行后没有反应!谢谢费心
作者: 447219071 时间: 2017-12-4 08:21
回复 3# lifei259
恩,试了可以用!另一个像我更新后的问题,用WGET下不了这个转址的源码,因为下这个转短的源码要等展示5秒钟后才会出现真正的源码,请问怎么弄法,谢谢高手!
作者: codegay 时间: 2017-12-6 02:22
本帖最后由 codegay 于 2017-12-6 02:23 编辑
nim语言写的- import httpclient
- import re
- import os
-
- proc getlink*(url:string):string {.discardable.} =
- var client = newHttpClient()
- var link: array[1,string]
- var ddmaContent:string
- ddmaContent = client.getContent(url)
- client.close()
-
- if find(ddmaContent,re"""link1\"\s+href=\"(.+)\"""",link,1) != -1 :
- echo "link:",link[0]
- result = link[0]
- else:
- result = ""
-
- proc startlink*(url:string):int {.discardable.} =
- result = execShellCmd("start " & url)
-
- startlink(getlink("http://dd.ma/mE0NUHSi"))
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |