第一篇 - bsp抓取python中文开发者社区中的所有高级教程

工具:python3.6  pycharm

库:bs4 + urllib

第一步:读取html源码

from bs4 import BeautifulSoup
import urllib.request#导入urllib库
url = ‘https://www.p y t hontab.com/html/pythonhexinbiancheng/index.html‘#获取网页链接
request = urllib.request.urlopen(url)
html = request.read()#读取网页源代码

第二步:获取内容和标题

soup = BeautifulSoup(html,‘html.parser‘)#解析html
title_links = soup.select(‘#catlist > li > a‘)#找到标题与链接
source_list = []#存储标题与链接的字典
for title_link in title_links:
    data = {
        ‘title‘ : title_link.get_text(),
        ‘link‘ : title_link.get(‘href‘)
    }
    source_list.append(data)

第三步:在当前目录下新建一个lesson的文件夹,将文件存储在此文件夹下

for dic in source_list:#遍历每一个字典
    request = urllib.request.urlopen(dic["link"])
    html = request.read()
    soup = BeautifulSoup(html, ‘html.parser‘)
    text_p = soup.select(‘#Article > div.content > p‘)#拿到p标签下的数据
    text = []#存储文章内容
    for a in text_p:
        text.append(a.get_text().encode(‘utf-8‘))#取出p标签下的文本部分,即文章的内容
    name = dic["title"]
    with open(‘lesson/%s.txt‘ % name, ‘wb‘) as f:#将文章写入文件
        for line in text:
            f.write(line)

数据爬取完毕。

注:以上完成一个页面的抓取,若想多抓取页面的话,可用以下代码:

from bs4 import BeautifulSoup
import urllib.request#导入urllib库
url_list = [‘https://www.p y t hontab.com/html/pythonhexinbiancheng/index.html‘]#获取网页链接
for i in range(2,20):
    url = ‘https://www.py tho ntab.com/html/pythonhexinbiancheng/%s.html‘ % i
    url_list.append(url)
for url in url_list:
    request = urllib.request.urlopen(url)
    html = request.read()#读取网页源代码
    soup = BeautifulSoup(html,‘html.parser‘)#解析html
    title_links = soup.select(‘#catlist > li > a‘)#找到标题与链接
    source_list = []#存储标题与链接的字典
    for title_link in title_links:
        data = {
            ‘title‘ : title_link.get_text(),
            ‘link‘ : title_link.get(‘href‘)
        }
        source_list.append(data)

    for dic in source_list:#遍历每一个字典
        request = urllib.request.urlopen(dic["link"])
        html = request.read()
        soup = BeautifulSoup(html, ‘html.parser‘)
        text_p = soup.select(‘#Article > div.content > p‘)#拿到p标签下的数据
        text = []#存储文章内容
        for a in text_p:
            text.append(a.get_text().encode(‘utf-8‘))#取出p标签下的文本部分,即文章的内容
        name = dic["title"]
        directory = ‘%s.txt‘ % name
        dir = directory.replace(‘/‘,‘_‘).replace(‘*‘,‘@‘).replace(‘"‘,‘o‘).replace(‘?‘,‘w‘).replace(‘:‘,‘m‘)
        with open(‘lesson/‘+dir, ‘wb‘) as f:#将文章写入文件
            for line in text:
                f.write(line)

原文地址:https://www.cnblogs.com/smart-zihan/p/getdata.html

时间: 2024-10-03 14:24:56

第一篇 - bsp抓取python中文开发者社区中的所有高级教程的相关文章

Windows环境中,通过Charles工具,抓取安卓手机、苹果手机中APP应用的http、https请求包信息

Windows环境中,通过Charles工具,抓取安卓手机.苹果手机中APP应用的http.https请求包信息1.抓取安卓手机中APP应用的http请求包信息1)在电脑上操作,查看Windows机器IP地址:cmd->ipconfig 在返回的结果中,查询得到IPv4地址. a)如果你的Windows机器是通过无线方式上网,则选择 无线局域网适配器 中的IPv4中IP地址. b)如果你的Windows机器是通过有线方式上网,则选择 以太网适配器 中的IPv4中IP地址. 2)在手机上操作,在你

Python全栈开发【第一篇】:初识Python

Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与while循环练习题 基本数据类型前引 Python 的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton Python的Java实现,Jython会将Pyth

Python爬虫抓取 python tutorial中文版,保存为word

看到了中文版的python tutorial,发现是网页版的,刚好最近在学习爬虫,想着不如抓取到本地 首先是网页的内容 查看网页源码后发现可以使用BeautifulSoup来获取文档的标题和内容,并保存为doc文件. 这里需要使用from bs4 import BeautifulSoup 来导入该模块 具体代码如下: # 输出所在网址的内容from bs4 import BeautifulSoup def introduce(url): res = requests.get(url) res.e

微信运动数据抓取(Python)

"微信运动"能够向朋友分享一个包含有运动数据的网页,网页中就有我们需要的数据.url类似于:http://hw.weixin.qq.com/steprank/step/personal?openid=用户的openid,其中有用于对于微信运动的唯一openid,打开fiddler进行抓包,首先打开fiddler,然后打开微信运动点击我的主页,如下: 微信通过请求头区分是否是通过微信浏览器进行的请求,如果用浏览器直接打开链接会出现如下错误提示,说明不是通过微信浏览器打开被微信拦截了: 通

【第11篇】最全的中文TypeScript入门指南详解案例教程与代码案例

一.最全的中文TypeScript入门指南详解案例教程           文档下载 二.代码案例 源代码下载 手机微信扫一扫有惊喜... ================================================================================================================= 1.详细安装文章请看 http://blog.csdn.net/jilongliang/article/details/219429

第一篇博客(python爬取小故事网并写入mysql)

前言: 这是一篇来自整理EVERNOTE的笔记所产生的小博客,实现功能主要为用广度优先算法爬取小故事网,爬满100个链接并写入mysql,虽然CS作为双学位已经修习了三年多了,但不仅理论知识一般,动手能力也很差,在学习的空余时间前前后后DEBUG了很多次,下面给出源代码及所遇到的BUG. 本博客参照代码及PROJECT来源:http://kexue.fm/archives/4385/ 源代码: 1 import requests as rq 2 import re 3 import codecs

关于python的requests库抓取源文件中文乱码的情况

1 import requests 2 3 html=requests.get('http://www.12306.cn/mormhweb/') 4 5 print html.text 刚开始是这么写的,运行时一直弹出错误 之后加上了 html.encoding='utf-8' 完美解决

Python开发【第一篇】:初识Python

Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众

跟着老男孩教育学Python开发【第一篇】:初识Python

Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 注:ABC语言是由Guido参与设计的一种教学语言,是专门为非专业程序员设计的.就Guido本人看来,ABC这种语言非常优美和强大,但是ABC语言并没有成功,究其原因,Guido认为是非开发造成的.Guido决心在Python中避免这一错误.同时,他还想实现在AB