主要就是用了两个库,urllib和BeautifulSoup.

作用是从HTML中解析出解梦的查询词和具体的解释。

 1 # -*- coding: utf-8 -*-
 2 import urllib, urllib2
 3 import time, random
 4 from BeautifulSoup import BeautifulSoup
 5 
 6 def fetchURL(str_url):
 7 
 8     user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) \
 9                   AppleWebKit/537.36 (KHTML, like Gecko)'
10     values     = {}
11     headers    = {'User-Agent': user_agent}
12     data       = urllib.urlencode(values)
13 
14     content = ''
15     
16     try:
17         request = urllib2.Request(str_url)
18         response = urllib2.urlopen(request)
19         html = response.read().decode('gb2312')
20         content = parse_content_page(html)
21     except:
22         content = None
23 
24     return content
25 
26 def parse_content_page(html):
27     parsed_html = BeautifulSoup(html)
28     try:
29         title   = parsed_html.body.find('h1', attrs={'class':'art_title'}).text
30         content = parsed_html.body.find('div', attrs={'class':'dream_detail'}).text
31     except:
32         return None
33         
34     return [title, content]
35 
36 
37 
38 if __name__ == '__main__':
39 
40     foutput = 'jiemeng.txt'
41     with open(foutput, 'w') as fout:
42         for i in xrange(1, 10):
43             reques_url = 'http://tools.2345.com/zhgjm/%s.htm' % str(i)
44             x = fetchURL(reques_url)
45             if x != None:
46                 print >>fout, x[0].encode('utf8')[3:-3]
47                 print >>fout, x[1].encode('utf8')
48             
49             # sleep for a while between two http requests 
50             seconds = random.random()*10 + 2
51             time.sleep(seconds)