博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 自动下载网站相关附件
阅读量:7223 次
发布时间:2019-06-29

本文共 1129 字,大约阅读时间需要 3 分钟。

论坛里有人问如何写个简单的爬虫. 要求如下:

每天的最新文章里面的附件

如何做到

定时下载

#看了一下这个网站, 还好. 好久没折腾过 urllib什么的, 然后写了一个, 测试可以.

在正则匹配时, 建议把数据的编码方式转为脚本编码方式一致.

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python
#-*- coding:utf-8 -*-
 
import 
urllib
import 
re
 
url 
= 
"http://www.bjjy.gov.cn"
 
def 
get_html_data(u):
    
= 
urllib.urlopen(u).read()
    
= 
""
    
for 
in 
h.split(
"\n"
):
        
try
:
            
+
= 
"\n" 
+ 
i.decode(
'gbk'
).encode(
'utf-8'
)
        
except
:
            
pass
    
return 
t
     
def 
get_link(data):
    
d, link 
= 
re.findall(r
'最新文章标题开始(.*)最新文章标题结束'
, data, re.S), []
    
if 
len
(d):
        
= 
re.findall(r
'<A HREF="([^"].*)" TARGET="_blank"'
, d[
0
], re.I)
        
if 
len
(s):
            
for 
in 
s:
                
link.append(i)
    
return 
link
 
if 
__name__ 
=
= 
"__main__"
:
    
html 
= 
get_html_data(url)
    
f_link 
= 
get_link(html)
    
for 
in 
f_link:
        
tmp_data 
= 
get_html_data(url 
+ 
i)
        
tmp_link 
= 
re.findall(r
'<a href="([^"].*)"><span style'
,tmp_data, re.I)
        
if 
len
(tmp_link):
            
for 
in 
tmp_link:
                
urllib.urlretrieve(url
+
j, (url
+
j).split(
"/"
)[
-
1
])

上面要匹配 最新文章 那个地方, 之前没有把数据转码,就是不行.

以上脚本加个定时任务OK.

本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1672622,如需转载请自行联系原作者

你可能感兴趣的文章
一篇文章读懂 React & redux 前端开发
查看>>
NLP入门(二)探究TF-IDF的原理
查看>>
Cisco思科网络插件Contiv (三) Plugin 实现原理
查看>>
iOS 解耦和组件化开发新姿势—— FFRouter
查看>>
Easeljs之DisplayObject阅读
查看>>
ElasticSearch6.4.0集群搭建
查看>>
javascript - 严格模式
查看>>
Python 爬虫利器 Selenium
查看>>
Typescript 基础(一)之类型
查看>>
【JavaScript】核心语法之对象
查看>>
使用Docker快速建立一个Kafka实例
查看>>
使用 Jenkins 自动部署 Docker 服务(一、Jenkins 搭建篇)
查看>>
读《算法图解》— 对算法的一些基本理解
查看>>
智能数据引擎Dataphin重磅发布,提供一站式的技术管理能力
查看>>
Oracle APEX 系列文章4:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)...
查看>>
Hadoop(二)Hadoop的HelloWorld(单机模式下的安装和使用)
查看>>
前端学习记录(HTML篇)
查看>>
swoole学习手记(二)创建服务器(上)
查看>>
刘奇:数据库市场呈现多样化趋势,20% 传统数据库在未来两年会被替代
查看>>
springCloud Finchley 微服务架构从入门到精通【六】Bus RabbitMQ配置刷新
查看>>