python爬取内网文件

python爬取内网文件

1、导入python库

import os
import urllib.request
import urllib.parse
import re
需要这四个库

2、创建gethtm()函数抓取网页代码:

def gethtm(url):
headers={‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0’}
request = urllib.request.Request(url=url,headers=headers)
response=urllib.request.urlopen(request)
html=response.read().decode(‘gb2312’)
return html
返回的网页代码是一个字符串,headers是模拟浏览器请求的请求头,url是要爬取的网址

3、创建下载文件的函数

def getfile(url,topath): #创建两个参数url是要爬取的网页,topath是下载出来的文件的存放路径。
html=gethtm(url) #调用上面的gethtm()函数获取网页代码
print(html)
html1=re.findall(pattern=‘

<a.*?

’,string=html) #用re库从代码中通过正则表达式匹配下载连接
print(html1) 打印出来是这样的 在这里插入图片描述文件的路径 这个还不能下载 需要创建列表对它进行数据处理。
list=[]
for url1 in html1:
    list.append(url1.lstrip('<p><a href="').split('"',1)[0])
for name in list:
    post_url='http://10.12.8.11/'+urllib.parse.quote(name)
    print(post_url)
    filename = os.path.join(topath,name.lstrip('china/QA/form/'))
    urllib.request.urlretrieve(url=post_url, filename=filename)
    通过去除首尾的多余字符再加上内网的IP地址后 就可以生成可下载的链接,就可以下载到本地了 
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0d827e0dd6b041abac2abfb2555a74de.png)

print('恭喜你下载完成,你真棒')

## 新的改变可下载的链接,下载完成
下载完成
url = “http://10.12.8.11/cnqaforms.htm”
topath = r’D:\U盘\forms’
getfile(url,topath)
``
完整代码如下

import os
import urllib.request
import urllib.parse
import re
def gethtm(url):
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0'}
    request = urllib.request.Request(url=url,headers=headers)
    response=urllib.request.urlopen(request)
    html=response.read().decode('gb2312')
    return html
def getfile(url,topath):
    html=gethtm(url)
    print(html)
    html1=re.findall(pattern='<p><a.*?</a></p>',string=html)
    print(html1)
    list=[]
    for url1 in html1:
        list.append(url1.lstrip('<p><a href="').split('"',1)[0])
    for name in list:
        post_url='http://10.12.8.11/'+urllib.parse.quote(name)
        print(post_url)
        filename = os.path.join(topath,name.lstrip('china/QA/form/'))
        urllib.request.urlretrieve(url=post_url, filename=filename)
    print('恭喜你下载完成,你真棒')

url = "http://10.12.8.11/cnqaforms.htm"
topath = r'D:\U盘\forms'
getfile(url,topath)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值