好友
阅读权限10
听众
最后登录1970-1-1
|
因为工作上对于数据的需要,所以这段时间一直在学习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代码。 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|