还是一句话 直接上代码
- 用于查找a标签里的href的值,再访问这个值,得到文章的内容,果然是要DB的公司,网站都是同步加载的,没有用到js的那么复杂,cnn,bbc都是 ,bbc还被墙掉了。。
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74# -*- coding: utf-8 -*-
##版本:1.0
##环境:python2.7
##作者:alience
##日期:2014.11.15
##说明:文件生成目录为:D:/qsbk
import urllib2
import urllib
import re
import thread
import time
import os
import sys
import datetime
from bs4 import BeautifulSoup
#----------- 程序的入口处 -----------
print u"""
---------------------------------------
程序:cnn爬虫
版本:0.3
作者:alience
日期:2014-11-18
语言:Python 2.7
---------------------------------------
"""
myUrl = "https://news.search.yahoo.com/search;_ylt=AwrSyCQlQ2xUITMAXnHQtDMD?p=visit&fr=yfp-t-703&fr2=piv-web&xargs=0&pstart=1&b="+'1'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
req = urllib2.Request(myUrl, headers = headers)
myResponse = urllib2.urlopen(req).read()
soup = BeautifulSoup(myResponse)
#ser_results=soup.find_all(attrs={"class":"cnnResultsList"})
#ser_results=soup.find_all('div',class_='cnn_shdbox')
ser_results=soup.find(attrs={"id":"web"})
# only one ser_results=soup.find_all("ul")
#ser_results=soup.find(class_=' cnnResultsList ')
#ul_tag = soup.find('ul', {'class': 'cnnResultsList'})
ol_ser_results=ser_results.find('ol')
a_tag=ol_ser_results.find_all('a')
print '------------'
i=0
for a in a_tag:
print i
print a.get('href')
print '---------'
i=i+1
print '------------'
#atag=ser_results.find_all('li')
#print results.find_all('li',class_="cnnResultTitle cnnResultTitleTopic")
#i=i+1
#i=0
#for pic in texts:
#print '---'+str(i)
#pic_t= pic.get_text()
#print pic_t.replace("\n","")
#p_link=p_img.get('href')
#print p_link
#i=i+1
#myPage = myResponse.read()
#encode的作用是将unicode编码转换成其他编码的字符串
#decode的作用是将其他编码的字符串转换成unicode编码
#unicodePage = myPage.decode("utf-8")