【Python】爬取本网站的文章
本文最后更新于 1450 天前,其中的信息可能已经有所发展或是发生改变。

思路

通过爬虫爬取本网站的文章标题、简介和链接。爬取的时候注意下需要解析的标签对就行。
简单的思路就是:抓取单页 -> 解析信息 -> 保存文件 -> 单线程循环/多线程循环。
pyquery库:pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析 HTML 文档,易用性和解析速度都很好,和它差不多的还有BeautifulSoup,都是用来解析的。相比BeautifulSoup完美翔实的文档,虽然PyQuery库的文档弱爆了, 但是使用起来还是可以的,有些地方用起来很方便简洁。

代码如下:

# 爬取笨猪网站的文章
import time
import json
import requests
from pyquery import PyQuery
from multiprocessing import Pool
from requests.exceptions import RequestException


def get_one_page(url):
    # 获取一个页面
    headers = {"User-Agent": "Mozilla/5.0"}
    try:
        response = requests.get(url, headers=headers)
        if response.status_code != 200:
            return None
    except RequestException:
        return None
    return response.text


def pase_one_page(text):
    # 解析页面内容
    doc = PyQuery(text)
    for info in doc(".kratos-hentry").items():
        dct = {}
        dct["标题"] = info.find("h2 a").text()
        dct["简介"] = info.find(".kratos-entry-content-new p").text()
        dct["链接"] = info.find("h2 a").attr("href")
        yield dct


def write_to_file(content):
    # 写入文件
    # 写入文件的路径
    with open("G:\\javaio\\data.txt", "a", encoding="utf-8") as f:
        f.write(json.dumps(content, ensure_ascii=False)+"\n")

def main(offset):
    # 程序入口
    url = "https://www.benzhu.xyz/index.php/page/{offset}/"
    text = get_one_page(url.format(offset=offset))
    for item in pase_one_page(text):
        write_to_file(item)

if __name__ == "__main__":
    #start开始时间
    start = time.time()
    #单独获取
    # main(1)
    # 单线程循环抓取,翻页
    # for i in range(1,6):
    #     main(i)

    # 多进程抓取,翻页 获取1-5页的数据
    pool = Pool()
    pool.map(main, [i for i in range(1,6)])
    #end结束时间
    end = time.time()
    #输出程序运行了多少时间
    print(end-start)

效果图:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇