日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抓取新浪的每日星座运势

發布時間:2024/7/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抓取新浪的每日星座运势 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從新浪上抓取每日的星座運勢,然后往求實的Astrology版發.

#!/usr/bin/python
# encoding: utf-8
from sgmllib import SGMLParser
from datetime import datetime, timedelta
import re
import urllib
starurl='http://image2.sina.com.cn/ast/2007index/tmp/star_php/star.gif'
class Parser(SGMLParser):
??? rlt=[]
??? def reset(self):
??????? SGMLParser.reset(self)
??????? self.rlt=[]
??? def start_img(self, attrs):
??????? src=[v for k,v in attrs if k=='src']
??????? if src and src[0]==starurl:
??????????? self.rlt.append('★')
??? def start_p(self, attrs):
??????? self.rlt.append(': ')

??? def end_p(self):
??????? self.rlt.append('\n')
???
??? def handle_data(self, text):
??????? self.rlt.append(text.rstrip())

??? def output(self):
??????? return re.sub(': \n', '\n', "".join(self.rlt))

def gettext(url):
??? txt=urllib.urlopen(url).read().decode('gb18030').encode('utf-8')
??? pattern=re.compile(r'<div class="lotstars">(.*)</div>', re.S)
??? return pattern.findall(txt)[0]

astros = ['牡羊座 Aries?????? (03/21-04/19)', '金牛座 Taurus????? (04/20-05/20)',
??????? '雙子座 Gemini????? (05/21-06/21)','巨蟹座 Cancer????? (06/22-07/22)',
??????? '獅子座 Leo???????? (07/23-08/22) ', '處女座 Virgo?????? (08/23-09/22)',
??????? '天秤座 Libra?????? (09/23-10/23)', '天蝎座 Scorpio???? (10/24-11/22)',
??????? '射手座 Sagittarius (11/23-12/21)', '摩羯座 Capricorn?? (12/22-01/19)',
??????? '水瓶座 Aquarius??? (01/20-02/18)', '雙魚座 Pisces????? (02/19-03/20)']
def genedict():
??? datestr = datetime.now().strftime('%Y-%m-%d')
??? url='http://astro.sina.com.cn/pc/west/frame0_%d.html'
??? rlt=[]
??? parser=Parser()
??? for i in range(12):
??????? parser.reset()
??????? key = datestr+' '+astros[i]
??????? urli=url % i
??????? parser.feed(gettext(urli))
??????? rlt.append((key, parser.output()))
??? return rlt

if __name__ == '__main__':
??? rlt=genedict()
??? for k, v in rlt:
??????? print k, '\n', v, '\n'

?

?

#!/usr/bin/python
# encoding: utf-8
import telnetlib
import getpass
import parser
import time

HOST='202.113.13.188'
PORT=23
user = raw_input('Enter your account: ')
password = getpass.getpass()

tn = telnetlib.Telnet(HOST, PORT)
tn.write(user+'\n')
tn.write(password+'\n')
tn.write('\n'*7)
tn.write('F\n')
tn.write('\n')
tn.write('sAstrology\n')
rlt=parser.genedict()
for k,v in rlt:
??? tn.write(chr(0x10))
??? tn.write(k.decode('utf-8').encode('gb18030'))
??? print k
??? tn.write('\n\n')
??? tn.write(v.decode('utf-8').encode('gb18030'))
??? print v
??? tn.write(chr(0x17))
??? tn.write('\n')
??? time.sleep(5)
tn.write('!')
tn.write('\n')
tn.close()

?

程序需要改進的地方:

  • 進站之后的留言版留言較多,這時至少需要輸入兩個字符才能離開留言版頁
  • 用戶有好友并且登錄時有好友在線的情況
  • 用戶登錄時收到了MSG
  • 下一部計劃:

  • 試著用web方式實現同樣的功能
  • 實現求實的灌水機
  • 轉載于:https://www.cnblogs.com/tianyapiaozi/archive/2009/09/11/2513892.html

    總結

    以上是生活随笔為你收集整理的抓取新浪的每日星座运势的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。