Python爬虫的抓取思路是:
(1)经过分析目标新闻网址 ,分析其中以News.xxx.com 开头的连接
(2)获取每个连接的内容,并作整理合并到事前准备好的.txt 文本中,以便查看各新闻。
可是须要注意的是:因为今天的测试对象,网易新闻的格式不是很是统一,全部会有部分漏掉的状况,还能你们见谅。也但愿有能力的朋友们帮着改进一下。html
自动抓取163新闻的Python爬虫源码以下:python
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#coding:utf-8
import
re, urllib
strTitle
=
""
strTxtTmp
=
""
strTxtOK
=
""
f
=
open
(
"163News.txt"
,
"w+"
)
m
=
re.findall(r
"news\.163\.com/\d.+?<\/a>"
,urllib.urlopen(
"http://www.163.com"
).read(),re.M)
#www.iplaypy.com
for
i
in
m:
testUrl
=
i.split(
'"')[0]
if testUrl[-4:-1]=="htm":
strTitle = strTitle + "\n" + i.split('"'
)[
0
]
+
i.split(
'"')[1] # 合并标题头内容
okUrl = i.split('"'
)[
0
]
# 从新组合连接
UrlNews
=
''
UrlNews
=
"http://"
+
okUrl
print
UrlNews
"""
查找分析连接里面的正文内容,可是因为 163 新闻的格式不是很是统一,因此只能说大部分能够。
整理去掉部分 html 代码,让文本更易于观看。
"""
n
=
re.findall(r
"
for
j
in
n:
if
len
(j)<>
0
:
j
=
j.replace(
" "
,
"\n"
)
j
=
j.replace(
""
,
"\n_____"
)
j
=
j.replace(
"
"
,
"_____\n"
)
strTxtTmp
=
strTxtTmp
+
j
+
"\n"
|
文章代码实效性有限,还请适当作修改后再使用。dom