python爬虫入门教程新手求助

匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。求助大神们:下面是一个python的小爬虫,本想爬取网站上的新闻标题,日期和点击量,但运行结果中却并没有出现这些内容只有&&日期: 点击量:。这是什么问题呢?新手刚入道,望多多指教!
#! /usr/bin/env python
#coding=gbk
import urllib2
import sys
def extract_url(info):
& & rege=&&li&&span class=\&title\&&&a href=\&(.*?)\&&&
& & re_url = re.findall(rege, info)
& & n=len(re_url)
& & for i in range(0,n):
& && &&&re_url=&http://news./&+re_url
& & return re_url
def extract_title(sub_web):
& & re_key = &&h4&\r\n (.*)\r\n &/h4&&& &
& & title = re.findall(re_key,sub_web) or [&&]
& & return title
def extract_date(sub_web):
& & re_key = &日期:(.*?)& & &
& & date = re.findall(re_key,sub_web) or [&&]
& & return date
def extract_counts(sub_web):
& & re_key = &点击数:(.*?)&&&
& & counts = re.findall(re_key,sub_web) or [&&]
& & return counts& &
fp=open('output.txt','w')
content = urllib2.urlopen('http://news./ShowList-82-0-1.shtml').read()
url=extract_url(content)
n=len(url)
for i in range(0,n):
& & sub_web = urllib2.urlopen(url).read()
& & sub_title = extract_title(sub_web)
& & string+=sub_title[0]
& & string+=''
& & sub_date = extract_date(sub_web)
& & string+=&日期:&+sub_date[0]
& & string+=''
& & sub_counts = extract_counts(sub_web)
& & string+=&点击数:&+sub_counts[0]
& & string+='\n'
print string
fp.close()
本帖最后由 shenzhenwan10 于
16:42 编辑
我看这个程序是用正则表达式来提取内容的
如果确定爬取的网页上有新闻标题,那就需要再测试下提取的正则表达式是否正确
正则表达式的调试还是很麻烦的,我们提出了一个新思路,可以在Python环境下做成通用的网络爬虫,提取规则从外部注入,直接利用MS谋数台生成的规则,具体参看:
从淘宝的买家评论中,能挖掘出什么有用的信连续动作:如何把抓到的信息与动作步骤对应淘宝开店运营十大攻略深圳市咨询投诉分析去资源库下载规则,轻松抓数据
12345678910
Fuller帖子:4362 ym帖子:1453 xandy帖子:1084Python爬虫入门(2):爬虫基础了解 - Python - 伯乐在线
& Python爬虫入门(2):爬虫基础了解
1.什么是爬虫
爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。
比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。
2.浏览网页的过程
在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如
,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过DNS,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。
因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。
3.URL的含义
URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是资源的具体地址,如目录和文件名等。
爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。
4. 环境的配置
学习Python,当然少不了环境的配置,最初我用的是Notepad++,不过发现它的提示功能实在是太弱了,于是,在Windows下我用了 PyCharm,在Linux下我用了Eclipse for Python,另外还有几款比较优秀的IDE,大家可以参考这篇文章
。好的是前进的,希望大家可以找到适合自己的IDE
下一节,我们就正式步入 Python 爬虫学习的殿堂了,小伙伴准备好了嘛?
打赏支持我写出更多好文章,谢谢!
打赏支持我写出更多好文章,谢谢!
任选一种支付方式
关于作者:
可能感兴趣的话题
PyCharm很强大( ?(∞)? )!
o 247 回复
关于 Python 频道
Python频道分享 Python 开发技术、相关的行业动态。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线用python爬虫抓站的一些技巧总结 _ observer专栏杂记_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
用python爬虫抓站的一些技巧总结 _ observer专栏杂记
&&用python爬虫抓站的一些技巧总结
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢后使用快捷导航没有帐号?
查看: 359|回复: 6
求助,大家都来说说python爬虫的基本原理?
高级会员, 积分 508, 距离下一级还需 492 积分
论坛徽章:4
什么是爬虫
爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。
比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。
那么是不是就是细节页面的html格式。。。然后根据条件来过滤结果?
那么问题来了:
大家作业都是继承至HTMLParser类, 然后重写里面的方法, 照搬一段代码如下:
class BookParser(HTMLParser):
& & PATH_TAG = 'html/head/meta/meta/meta/meta/meta/link/link/link/link/body/div/div/div/div/div/div/div/div/table'
& & def __init__(self):
& && &&&HTMLParser.__init__(self)
& && &&&self._tags_stack = []
& && &&&self.Books = []
& && &&&self._new_Book = False
& & def reset(self):
& && &&&HTMLParser.reset(self)
& && &&&self._tags_stack = []
& && &&&self._new_Book = False
& & def handle_starttag(self, tag, attrs):
& && &&&def _getattr(attrname):
& && && && &for attr in attrs:
& && && && && & if attr[0] == attrname:
& && && && && && &&&return attr[1]
& && && && &return None
& && &&&self._tags_stack.append(tag)
& && &&&path = '/'.join(self._tags_stack)
& && &&&if path == PATH_TAG:
& && && && &self._new_Book = True
& && && && &self.Books.append(Book())
& && &&&if self._new_Book == True and tag == 'a' and _getattr('class') == 'nbg':
& && && && &self.Books[-1].attrs.append(('Book_url', _getattr('href')))
& && && && &self.Books[-1].attrs.append(('Book_name', _getattr('title')))
& && &&&elif self._new_Book == True and tag == 'img':
& && && && &self.Books[-1].attrs.append(('Book_img_url', _getattr('src')))
& && && && &global imgQueue
& && && && &imgQueue.put(_getattr('src'))
& & def handle_endtag(self, tag):
& && &&&path = '/'.join(self._tags_stack)
& && &&&if path == PATH_TAG:
& && && && &self._new_Book = False
& && &&&self._tags_stack.pop()
& & def handle_data(self, data):
& && &&&path = '/'.join(self._tags_stack)
& && &&&PATH_TAG
& && &&&if self._new_Book == True and path.endswith('/p'):
& && && && &self.Books[-1].attrs.append(('Book_intro', data))复制代码
比较不懂的是:
1. PATH_TAG = 'html/head/meta/meta/meta/meta/meta/link/link/link/link/body/div/div/div/div/div/div/div/div/table'&&这一段是在干嘛?难道是所需图片的html 标签路径? 但是我没查看到。
2. reset(), handle_starttag(), handle_endtag(), handle_data() 这几个方法分别在这里例子里面分别是做什么?
求大神路过指点迷津。
新手上路, 积分 47, 距离下一级还需 3 积分
论坛徽章:2
PATH_TAG是用来定位的,爬虫到了这个以后就要开始提取内容了
注册会员, 积分 156, 距离下一级还需 44 积分
论坛徽章:5
可以,这个目前还没有用过,感觉很厉害的样子
金牌会员, 积分 1352, 距离下一级还需 1648 积分
论坛徽章:16
看代码,你这个是爬取图书的封面及分类标签等信息?
PATH_TAG = 'html/head/meta/meta/meta/meta/meta/link/link/link/link/body/div/div/div/div/div/div/div/div/table
这个是Xpath的用法吧,没错就是标签路径,最后定位到的是标签里面的表格(table),因为你页面链接没有放上来没法帮你看更详细的。
新手上路, 积分 34, 距离下一级还需 16 积分
论坛徽章:2
我也过来看看,学习一下。
中级会员, 积分 312, 距离下一级还需 188 积分
论坛徽章:7
还没学到网络爬虫的部分。。。
高级会员, 积分 508, 距离下一级还需 492 积分
论坛徽章:4
还没学到网络爬虫的部分。。。
以后会学到的。
扫一扫加入本版微信群

我要回帖

更多关于 爬虫技术 的文章

 

随机推荐