使用python实现简单爬虫

来源:互联网 发布:淘宝卖家收款到哪 编辑:程序博客网 时间:2024/06/10 18:48
因为工作上对于数据的需要,所以这段时间一直在学习python和scrapy框架,下面贴上一个简单的python代码爬虫,可能代码风格有点low,见谅。
#-*-coding:utf-8-*-
import codecs
import urllib
import urllib2
import re
import json
import time
from lxml import etree

import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
        reload(sys)
        sys.setdefaultencoding(defaultencoding)
rooturl='http://pccz.court.gov.cn/pcajxxw/pcgg/gglb'

fakeHeaders= {'User-Agent':'Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6'}
#解析页面的方法,传入需要解析的页码,返回页面内容
def postHtmlContent(pageNum):
        #因为页码为1时和其他页码访问的页面链接不同,所以添加了一个简单的判断
        if pageNum == 1:
                rooturl ='http://pccz.court.gov.cn/pcajxxw/pcgg/ggindex'
        else:
                rooturl ='http://pccz.court.gov.cn/pcajxxw/pcgg/gglb'
        #页面需要使用post请求
        req = urllib2.Request(rooturl.encode('utf8'),urllib.urlencode({"lx":"1","pageNum":pageNum}))
        time.sleep(1)
        htmlContent = urllib2.urlopen(req,timeout=5).read()
        return htmlContent
rooturl1 = rooturl[0:rooturl.rfind("/")-4]
print rooturl1
htmlContent = postHtmlContent(5)
tree=etree.HTML(htmlContent)

wenzhangURLs=tree.xpath(u"//ul[@Class = 'fd-notice-data']/li/a/@href")
#打印出当前页面每个文章的链接
print wenzhangURLs

for wenzhangURL in wenzhangURLs:

        pageurl = rooturl1+wenzhangURL.lstrip()
        print "pageurl------->"+pageurl
        page = urllib2.urlopen(pageurl,timeout=5).read()
        time.sleep(2)
        tree=etree.HTML(page)
        title = tree.xpath(u"//h1[@class ='fd-content-title']/text()")
        content = tree.xpath(u"//span/text()")
        subtime = tree.xpath(u"//p[@class = 'fd-content-subtitle']/text()")

        title = ''.join(title).strip()
        content = ''.join(content).strip()
        subtime = ''.join(subtime).strip()
        pt = str(subtime).split()
        # print page
#分别打印文章标题,内容,以及时间
        print title
        print content
        print pt[1]
这只是一个在编写scrapy爬虫前的测试代码,因为时间有限,后续还将会继续放上这个的scrapy代码。
原创粉丝点击