python开发软件通过网页加载_Python通过解析网页实现看报程序的方法

# coding=gbk

import urllib2

import socket

import re

import time

import os

# timeout in seconds

#timeout = 10

#socket.setdefaulttimeout(timeout)

timeout = 10

urllib2.socket.setdefaulttimeout(timeout)

home_url = "http://www.hqck.net"

home_page = ""

try:

home_page_context = urllib2.urlopen(home_url)

home_page = home_page_context.read()

print "Read home page finishd."

print "-------------------------------------------------"

except urllib2.URLError,e:

print e.code

exit()

except:

print e.code

exit()

reg_str = r'.+'

news_url_reg = re.compile(reg_str)

today_cankao_news = news_url_reg.findall(home_page)

if len(today_cankao_news) == 0:

print "Cannot find today's news!"

exit()

my_news = today_cankao_news[0]

print "Latest news link = " + my_news

print

url_s = my_news.find("/arc/")

url_e = my_news.find(".html")

url_e = url_e + 5

print "Link index = [" + str(url_s) + "," + str(url_e) + "]"

my_news = my_news[url_s:url_e]

print "part url = " + my_news

full_news_url = home_url + my_news

print "full url = " + full_news_url

print

image_folder = "E:\\new_folder\\"

if (os.path.exists(image_folder) == False):

os.makedirs(image_folder)

today_num = time.strftime('%Y-%m-%d',time.localtime(time.time()))

image_folder = image_folder + today_num + "\\"

if (os.path.exists(image_folder) == False):

os.makedirs(image_folder)

print "News image folder = " + image_folder

print

context_uri = full_news_url[0:-5]

first_page_url = context_uri + ".html"

try:

first_page_context = urllib2.urlopen(first_page_url)

first_page = first_page_context.read()

except urllib2.HTTPError, e:

print e.code

exit()

tot_page_index = first_page.find("共")

tot_page_index = tot_page_index

tmp_str = first_page[tot_page_index:tot_page_index+10]

end_s = tmp_str.find("页")

page_num = tmp_str[2:end_s]

print page_num

page_count = int(page_num)

print "Total " + page_num + " pages:"

print

page_index = 1

download_suc = True

while page_index <= page_count:

page_url = context_uri

if page_index > 1:

page_url = page_url + "_" + str(page_index)

page_url = page_url + ".html"

print "News page link = " + page_url

try:

news_img_page_context = urllib2.urlopen(page_url)

except urllib2.URLError,e:

print e.reason

download_suc = False

break

news_img_page = news_img_page_context.read()

#f = open("e:\\page.html", "w")

#f.write(news_img_page)

#f.close()

reg_str = r'http://image\S+jpg'

image_reg = re.compile(reg_str)

image_results = image_reg.findall(news_img_page)

if len(image_results) == 0:

print "Cannot find news page" + str(page_index) + "!"

download_suc = False

break

image_url = image_results[0]

print "News image url = " + image_url

news_image_context = urllib2.urlopen(image_url)

image_name = image_folder + "page_" + str(page_index) + ".jpg"

imgf = open(image_name, 'wb')

print "Getting image..."

try:

while True:

date = news_image_context.read(1024*10)

if not date:

break

imgf.write(date)

imgf.close()

except:

download_suc = False

print "Save image " + str(page_index) + " failed!"

print "Unexpected error: " + sys.exc_info()[0] + sys.exc_info()[1]

else:

print "Save image " + str(page_index) + " succeed!"

print

page_index = page_index + 1

if download_suc == True:

print "News download succeed! Path = \"" + str(image_folder) + "\""

print "Enjoy it! ^^"

else:

print "news download failed!"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值