本文来源吾爱破解论坛
本帖最后由 xstormli 于 2019-4-4 13:08 编辑
从我第一次看到论坛上的爬虫也有一两个月了吧?
通过翻阅各大论坛,以及阅读相关书籍,以及请教各路大佬们,最终写出该作品。
本作品是用beautifulsoup + request来进行爬图和文字。
需要的import的包,请自行用pip install来进行安装。
想使用的童鞋一定要记得仔细阅读 # 后的标注文字!
另外你需要找一个能TextDecode的软件或者网页!
复制代码的时候可能会遇到中英文空格混乱导致invalid syntax的困扰,
请纯文本打开,Ctrl+A,Ctrl+C,Ctrl+P到你的IDE上!
[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*- # 环境 python 3.x # 从兴趣开始学习Python # 我是pepCoder import time import re import requests import bs4 from os import path, makedirs from urllib.parse import urljoin # 通过下面的def解析出的link来进行抓取图片 def Lets_get_imgs(html): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } # 这货是为了让你伪装成普通浏览用户,而不是爬虫人士 response = requests.get(html, headers = headers).content # 开始爬 soup = bs4.BeautifulSoup(response, 'html.parser') # 解析, 方法有html.parser, html5lib, lxml, 看哪一个更实用 soup_title = soup.find(name='div',attrs={'class':'mainbox viewthread'}).find('h2').get_text() # 抓作品名称 print('名称是:', soup_title) dirPath = "C:\\__作品发布__\\" # 此处设置输出文件途径,可以自行修改。 img_folder = path.join(dirPath, soup_title) makedirs(img_folder, exist_ok=True) soup_imgs = soup.find(name='div', attrs={'class':'t_msgfont'}).find_all('img', alt="", src=re.compile(".jpg")) for i, img in enumerate(soup_imgs, 1): src = img['src'] # 爬到的可能是一张图片的连接,也有可能是多张图片的连接,用enumerate函数进行一一分解保存 img_name = path.join(img_folder, "{}.jpg".format(i)) r = requests.get(src) with open(img_name, 'wb') as f: for chunk in r: f.write(chunk) print("文件储存为: {}".format(img_name)) # 访问分论坛页面获取帖子的连接 def acquiring_forum_links(forum, page): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } # 这货是为了让你伪装成普通浏览用户,而不是爬虫人士 forum_page = 'http://www.(736973303031).com/forum/forum-'+str(forum)+'-'+str(page)+'.html' response = requests.get(forum_page, headers=headers).content # 爬网址下来 soup = bs4.BeautifulSoup(response, 'lxml') # 解析, 方法有html.parser, html5lib, lxml, 看哪一个更实用 html_raw = soup.find(name='div',attrs={'class':'mainbox threadlist'})\ .find_all('a', style="font-weight: bold;color: blue") # 颜色:蓝色blue为大佬的新片,紫色purple是其他人发的,红色red是VR for i, link in enumerate(html_raw, 1): html_tail = link['href'] # 爬到的是一个连接的集合体,用enumerate函数进行一一分解 html_domain = 'http://www.(736973303031).com/forum/' # 请自行decoding(736973303031) html = urljoin(html_domain, html_tail) # 爬下来的信息缺少domain,需要用urljoin函数进行补充合并 print("获取连接成功: ", html) Lets_get_imgs(html) def forum_preference(): # 230是cavalier;143是infantry; forum = 143 # 请从第二页起获取,第一页目前无法正常抓取图片文件 page = 2 acquiring_forum_links(forum, page) print("=☆=★=☆=★=☆= - 开始执行 - =★=☆=★=☆=★=") time.sleep(1) forum_preference() time.sleep(1) print("=☆=★=☆=★=☆= - 结束指令 - =★=☆=★=☆=★=") # 本作品的初衷主要是懒得一页一页的看网页,乱七八糟的很闹心。 # 不如爬到硬盘里自己先看看,喜欢就去下载,不喜欢就删了图片。 # 有什么不清楚不明白的地方可以大家沟通互相学习, # 我的codes不完美,还有很大的进步空间。 # 记得挂梯子运行此文件 # decoding帖子 ‘https://www.zhainanre.com/2021.html’
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 趣消除App自动化 - 签到and作战休息区
- 下一篇: Python爬虫 -- 爬取crx拓展