使用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代码。
#-*-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代码。
阅读全文
0 0
- 使用python实现简单爬虫
- 使用python实现简单爬虫
- python 简单爬虫实现
- Python实现简单爬虫
- Python实现简单爬虫
- Python实现简单爬虫
- Python实现简单爬虫
- python 实现简单爬虫
- Python简单爬虫实现
- python 爬虫简单使用
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python 实现简单网络爬虫
- Python实现简单的爬虫
- python实现简单爬虫功能
- 数据分析的统计学基础
- 你应该知道的9篇深度学习论文(CNNs 理解)
- Android 手机按键客制化详解
- matlab2012a/2012b licence失效解决办法(循环注册)
- Spring Boot 配置大全
- 使用python实现简单爬虫
- ARCore:ARCore带来的新概念
- 【实战】android多线程下载(框架)
- 基于深度学习的目标检测
- RecyclerView添加item的点击事件
- leetcode---add-binary---字符串
- Jmeter链接数据库,处理返回对象,Beanshell语法使用
- 【Intellij IDEA】eclipse项目导入
- 拼多多内推编程题