1 / 111
文档名称:

Python爬虫实战.doc

格式:doc   大小:8,412KB   页数:111页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

Python爬虫实战.doc

上传人:511709291 2022/1/28 文件大小:8.21 MB

下载得到文件列表

Python爬虫实战.doc

相关文档

文档介绍

文档介绍:word
word
1 / 111
word
Python爬虫实战
Python爬虫实战〔1〕:爬取糗事百科段子
大家好,前面入门已经说了那么多根底知识了,下面我们做几个实战项目来挑战一下吧。那么这次为大家带来,Python爬取4
5
6
content =().decode('utf-8')
pattern =('<div.*?class="author.*?>.*?<a.*?</a>.*?<a.*?>(.*?)</a>.*?<div.*?class'+
                     '="content".*?title="(.*?)">(.*?)</div>(.*?)<div class="stats.*?class="number">(.*?)</i>',)
items =(pattern,content)
foritem initems:
    printitem[0],item[1],item[2],item[3],item[4]
现在正如此表达式在这里稍作说明
1〕.*? 是一个固定的搭配,.和*代表可以匹配任意无限多个字符,加上?表示使用非贪婪模式进展匹配,也就是我们会尽可能短地做匹配,以后我们还会大量用到 .*? 的搭配。
2〕(.*?)代表一个分组,在这个正如此表达式中我们匹配了五个分组,在后面的遍历item中,item[0]就代表第一个(.*?)所指代的内容,item[1]就代表第二个(.*?)所指代的内容,以此类推。
3〕 标志代表在匹配时为点任意匹配模式,点 . 也可以代表换行符。
现在我们可以看一下局部运行结果
儒雅男神 2015-02-17 14:34:42
小时候一个一个拆着放的举个爪…
word
word
6 / 111
word
<div class=〞thumb〞>
<a href=〞/article/100705418?list=hot&s=4747301″ target=〞_blank〞 onclick=〞([‘_trackEvent’, ‘post’, ‘click’, ‘signlePost’])〞><imgsrc=〞./system/pictures/10070/100705418/medium/〞alt=〞糗事#100705418″ /></a>
</div>
7093奇怪的名字啊 2015-02-17 14:49:16
回家的路,你追我赶,回家的心情和窗外的阳光一样灿烂。一路向前,离亲人越来越近了。哪里有爸妈哪里才是家,希望所有糗友的爸爸妈妈都身体健康…….
4803
这是其中的两个段子,分别打印了发布人,发布时间,发布内容,附加图片以与点赞数。
其中,附加图片的内容我把图片代码整体抠了出来,这个对应item[3],所以我们只需要进一步判断item[3]里面是否含有img这个字样就可以进展过滤了。
好,我们再把上述代码中的for循环改为下面的样子
1
2
3
4
foritem initems:
        haveImg =("img",item[3])
        ifnothaveImg:
            printitem[0],item[1],item[2],item[4]
现在,整体的代码如下
1
2
3
4
# -*- coding:utf-8 -*-
importurllib
importurllib2
importre
word
word
7 / 111
word
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
page =1
url ='.qiushibaike./hot/page/'+str(page)
user_agent ='Mozilla/ (patible; MSIE ; Windows NT)'
headers ={ 'User-Agent': user_agent }
try:
    request =(url,headers =headers)
    response =(request)
    content =().decode('utf-8')
    pattern =('