PYTHON爬虫学习-糗事百科内容爬取

来源:互联网 发布:无忧seo 编辑:程序博客网 时间:2024/05/18 09:52

改了半天,终于按照自己的设想把这东西做出来了,赶快把自己的心得写下来。

首先上源码:

import re 
import urllib.request
def getjoke(url,page):
    headers=('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36')
    opener=urllib.request.build_opener()
    opener.addheaders=[headers]
    urllib.request.install_opener(opener)
    data=urllib.request.urlopen(url).read().decode('utf-8')
    namept='<a href="/users/\w*?/" target="_blank" title="(.*?)">'
    contentp='<div class="content">(.*?)</div>'
    namelist=re.compile(namept,re.S).findall(data)
    contentlist=re.compile(contentp,re.S).findall(data)    
    f=open(r"C:\Users\10357\Desktop\qiushi.txt",'w',encoding='utf-8')
    
    for name in namelist:
        for c in contentlist:
            f.write('用户名:'+name)
            f.write('\n')
            c=str(c.replace('\n',''))
            f.write('内容:'+c)
            f.write('\n')
            
    f.close()
for i in range(1,10):
    url="https://www.qiushibaike.com/8hr/page/"+str(i)
    getjoke(url,i)
print("finished!")


先观察各网页间的网址规律,构建出网址变量,通过for循环实现多页内容的爬取

构建一个自定义的函数,来爬取我们想要的内容:

开始还是模拟chrome浏览器进行访问。因为爬取的主要是用户的id和用户发表的段子这俩部分内容,所以观察网页源代码,用正则表达式提取出对应自己想要的信息。

之后对用户id和对应发表的段子内容进行遍历,将其依次保存在桌面的txt文档中。

最后运行结束,输出finishied!

附上最后结果图:


心得的话:因为是新手,在网页编码这块卡了好长时间。感觉主要难点是怎么输出你爬取的信息(无论是保存到文件中还是打印出来),只要是解决了这个,其他我觉得就是水到渠成。

阅读全文
0 0
原创粉丝点击