-
2019-06-03 08:15:27
小说采集一直是站主比较头大的一件事,接下来我将给大家分享用python采集笔趣阁小说站,可能会多写几篇,不足之处大家多多指教
目标站:www.biquges.cc先采集小说资源链接
代码中是将所有采集到的链接存放到列表中,有需要的同学可以自己写sql语句存放到数据库中或者保存到txt文件中
#coding=utf-8
import requests
class GetList:
“”"
获取小说列表链接
“”"
def getlist(self,start_num,end_num):
lis=[]
for i in range(start_num,end_num):
url=“http://www.biquges.cc/b”
url=url+str(i)
#获取网页状态吗,如果是200就添加到采集资源池中
status=requests.get(url).status_code
if status==200:
lis.append(url)
else:
continueprint(lis)
if name==“main”:
gl=GetList()
gl.getlist(start_num=1,end_num=3)更多相关内容 -
笔趣阁小说TXT采集软件工具
2021-07-06 10:15:59笔趣阁小说TXT采集工具是一款非常好用的笔趣阁小说下载工具,能够帮助用户轻松搜索采集你喜欢的小说,支持完本下载,方便你在本地离线阅读,且无任何广告,感兴趣的用户欢迎下载使用! 网盘下载地址: ... -
笔趣阁TXT小说采集工具-易语言
2021-06-12 01:26:26没什么技术含量,主要用了鱼刺的多线程模块和 精易模块 【自行下载】 由于想看小说,所以闲来无事,就写了这个工具,分享...工具主要是采集小说的章节目录,然后下载每个章节,最后将所有章节合成一本小说【txt格式】。 -
笔趣阁 单篇小说采集
2018-06-29 16:17:06笔趣阁 单篇小说采集 使用代理池访问 访问失败会重试,自动切换代理 测试1300章文章下载OK 输出txt格式 -
笔趣阁小说下载器
2019-03-10 13:21:22压缩包中含有两个.py文件:datebase_require.py是采集所有小说名和其对应章节表的url地址,download_novel.py是GUI界面和对应下载,请自行修改两个文件的数据库内容即可。 -
用Python实现笔趣阁小说爬取
2020-12-31 16:28:29今天来实现以下笔趣阁小说爬虫 笔趣阁的小说爬取难度还是比较低的(不涉及搜索功能) 咱们用requests和xpath来完成这个小爬虫 首先肯定是导包 import requests import time from lxml import etree 然后来写两个...今天来实现以下笔趣阁小说爬虫
笔趣阁的小说爬取难度还是比较低的(不涉及搜索功能)
咱们用requests和xpath来完成这个小爬虫首先肯定是导包
import requests import time from lxml import etree
然后来写两个辅助函数
分别用于请求网页和xpath解析
函数会让我们后面的程序更加简洁方便def get_tag(response, tag): html = etree.HTML(response) ret = html.xpath(tag) return ret def parse_url(url): response = requests.get(url) response.encoding = 'gbk' return response.text
我们是从目录页开始爬取的
所以首先我们要获取目录页面里面所有的章节网址def find_url(response): chapter = get_tag(response, '//*[@id="list"]/dl/dd/a/@href') # print(chapter) for i in chapter: url_list.append(start_url + i) # url_list.append('https://www.52bqg.com/book_187/' + i) # print(url_list)
然后根据章节的网址
去获取章节内的信息def find_content(url): response = parse_url(url) chapter = get_tag(response, '//*[@id="box_con"]/div[2]/h1/text()')[0] content = get_tag(response, '//*[@id="content"]/text()') print('正在爬取', chapter) with open('{}.txt'.format(title), 'at', encoding='utf-8') as j: j.write(chapter) for i in content: if i == '\r\n': continue j.write(i) j.close() print(chapter, '保存完毕') time.sleep(2)
最后就是一个主体函数
def main(): global title, start_url # start_url = 'https://www.52bqg.com/book_187/' start_url = input('输入爬取小说的目录页:例如(https://www.52bqg.com/book_187/)') response = parse_url(start_url) # print(response) title = get_tag(response, '//*[@id="info"]/h1/text()')[0] # print(title) find_url(response) # print(1) for url in url_list: find_content(url)
完整代码如下:
import requests import time from lxml import etree url_list = [] def get_tag(response, tag): html = etree.HTML(response) ret = html.xpath(tag) return ret def parse_url(url): response = requests.get(url) response.encoding = 'gbk' return response.text def find_url(response): chapter = get_tag(response, '//*[@id="list"]/dl/dd/a/@href') # print(chapter) for i in chapter: url_list.append(start_url + i) # url_list.append('https://www.52bqg.com/book_187/' + i) # print(url_list) def find_content(url): response = parse_url(url) chapter = get_tag(response, '//*[@id="box_con"]/div[2]/h1/text()')[0] content = get_tag(response, '//*[@id="content"]/text()') print('正在爬取', chapter) with open('{}.txt'.format(title), 'at', encoding='utf-8') as j: j.write(chapter) for i in content: if i == '\r\n': continue j.write(i) j.close() print(chapter, '保存完毕') time.sleep(2) def main(): global title, start_url # start_url = 'https://www.52bqg.com/book_187/' start_url = input('输入爬取小说的目录页:例如(https://www.52bqg.com/book_187/)') response = parse_url(start_url) # print(response) title = get_tag(response, '//*[@id="info"]/h1/text()')[0] # print(title) find_url(response) # print(1) for url in url_list: find_content(url) if __name__ == '__main__': main()
效果图:
笔趣阁小数的爬虫还是比较好写的
下篇文章我们为这个爬虫加上GUI界面
用Python实现笔趣阁小说爬取 GUI版好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个关注,是对我莫大的鼓励!
我们这边有一个Python交流群,里面程序源码、教程视频,还有大佬解答问题,群号:821189983。 -
java爬虫爬取笔趣阁小说
2020-08-18 12:48:55java爬虫爬取笔趣阁小说java爬虫爬取笔趣阁小说
package novelCrawler; import org.jsoup.Connection; import org.jsoup.HttpStatusException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import ui.DownMsgUI; import ui.crawlerUI; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Timer; import java.util.TimerTask; import javax.sound.sampled.AudioFormat.Encoding; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JProgressBar; public class biquge { public biquge(String nn,String start,JProgressBar jpbVal,JProgressBar jpb2) { long t1 = System.currentTimeMillis(); //查找小说 Connection connection1 = Jsoup.connect("http://www.xbiquge.la/xiaoshuodaquan/"); Document document1 = null; try { document1 = connection1.get(); } catch (IOException e2) { // TODO 自动生成的 catch 块 e2.printStackTrace(); } Elements elementsLis1=null; try { Element elementUL1 = document1.select("[class=novellist]").first(); elementsLis1 = elementUL1.select("li"); } catch (Exception e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } jpbVal.setVisible(true); int count = 0; DownMsgUI dmu = new DownMsgUI();//消息框 //巡官遍历获取到的整个elementsLis集合 for(Element elementLi1 : elementsLis1){ try { Thread.sleep(200); } catch (InterruptedException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } Element elementA1 = elementLi1.select("a").first(); String href = elementA1.attr("href");//获取标签中的属性值(它这里采用的是相对路径的写法 String novelNa = elementA1.text();//小说名 jpbVal.setMaximum(elementsLis1.size()); int result1 = novelNa.indexOf(nn);//匹配小说名 if(result1 != -1){ //跟进小说 jpbVal.setValue(elementsLis1.size()); //JOptionPane msg = new JOptionPane(); //msg.setBounds(100, 100, 100, 100); //JOptionPane.showMessageDialog(jpb2,"已找到小说:"+novelNa); dmu.ta.append("找到小说: "+novelNa+"\n"); connectNovel(novelNa,href,start,jpb2,dmu); break; }else{ //继续往下寻找 //System.out.println("未找到小说!"); jpbVal.setValue(count); } count++; if(count>=elementsLis1.size()) { System.out.println("未找到小说!"); } } } / public void connectNovel(String novelNa,String h,String start,JProgressBar jpb2,DownMsgUI dmu) { //1.与我们要爬取数据的页面建立连接 Connection connection = Jsoup.connect(h); jpb2.setVisible(true); Document document = null; try { document = connection.get(); } catch (IOException e2) { // TODO 自动生成的 catch 块 e2.printStackTrace(); } Element elementUL = document.select("[id=list]").first(); Elements elementsLis = elementUL.select("dd"); //小说信息 Element el = document.select("[id=info]").first(); Elements ele = el.select("p"); dmu.ta.append(ele.text().substring(0, ele.text().indexOf("动"))+"\n"); String str1=ele.text().substring(0, ele.text().indexOf("部")); String str2=ele.text().substring(str1.length()+1, ele.text().length()); dmu.ta.append(str2+"\n"); System.out.println(str2); int midTime = elementsLis.size();//单位s //所需时间 jpb2.setMaximum(midTime); //residueTime(midTime);//倒计时 int count2=0; boolean flag = false; int count=0; int count3=0; jpb2.setMaximum(elementsLis.size()); //巡官遍历获取到的整个elementsLis集合 for(Element elementLi : elementsLis){ try { Thread.sleep(10); } catch (InterruptedException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } Element elementA = elementLi.select("a").first(); String href = elementA.attr("href");//获取标签中的属性值(它这里采用的是相对路径的写法) String imgName = elementA.text(); count3++; int result1 = imgName.indexOf(start);//匹配章节 if(result1 != -1){ //开始下载 try { download(novelNa,href,imgName, dmu); count++; jpb2.setMinimum(count3); jpb2.setValue(jpb2.getMinimum()+(count2++)); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } flag = true; }else{ //继续往下寻找 if(flag == true) { try { download(novelNa,href,imgName, dmu); count++; jpb2.setValue(jpb2.getMinimum()+(count2++)); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } if(count3==elementsLis.size()) { dmu.ta.append("下载完成 共 "+count+" 章"); jpb2.setValue(jpb2.getMaximum()); } } } public static void download(String novelNa,String href,String imgName,DownMsgUI dmu) throws IOException { String netPath = "http://www.xbiquge.la"+href; Connection newConnection = null; Document newDocument = null; try { Thread.sleep(100); newConnection = Jsoup.connect(netPath); Thread.sleep(500); newDocument = newConnection.get(); } catch(HttpStatusException e) { System.out.println("下载错误,尝试重新连接"); try { Thread.sleep(500); newConnection = Jsoup.connect(netPath); Thread.sleep(1000); newDocument = newConnection.get(); } catch(HttpStatusException e1) { System.out.println("下载错误2,尝试重新连接"); } catch (InterruptedException e3) { e.printStackTrace(); } } catch (InterruptedException e) { e.printStackTrace(); } try { Thread.sleep(500); } catch (InterruptedException e1) { e1.printStackTrace(); } Element div = newDocument.select("[id=content]").first(); String divStyle = div.attr("style"); String text = div.text().trim(); text = new String(text.getBytes("UTF-8"),"UTF-8"); String l = System.getProperty("line.separator"); text = text.replace("。", "。"+l); // System.out.print(text); System.out.print("正在下载:"+imgName+" "); FileOutputStream fileOutputStream = new FileOutputStream("./"+novelNa+".txt",true); fileOutputStream.write(l.getBytes("UTF-8")); fileOutputStream.write(imgName.getBytes("UTF-8")); fileOutputStream.write(l.getBytes("UTF-8")); fileOutputStream.write(text.getBytes("UTF-8"));//不指定则空格乱码,iso编码 fileOutputStream.flush(); fileOutputStream.close(); System.out.println("下载完成"); dmu.ta.append("正在下载:"+imgName+" \n"); long t4 = System.currentTimeMillis(); //double time = (double) (t4-t1)/1000; // System.out.println("恭喜您已完成全部下载,共耗时:"+time+"秒,下载"+"章"); } } ```java package novelCrawler; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; public class GetText { /** * 1、根据小说存放位置创建file对象 2、根据网页结构编写正则,创建pattern对象 3、编写循环,创建向所有小说章节页面发起网络请求的url对象 4、网络流BufferReader 5、创建输入流 6、循环读取请求得到的内容,使用正则匹配其中的内容 7、将读取到的内容写入本地文件,知道循环结束 8、注意代码中的异常处理 * @param args */ public static void main(String[] args) { // 1、根据小说存放位置创建file对象 File file = new File("D:\\File\\three_guo.txt"); // 2、根据网页结构编写正则,创建pattern对象 String regex_content = "<p.*?>(.*?)</p>"; String regex_title = "<title>(.*?)</title>"; Pattern p_content = Pattern.compile(regex_content); Pattern p_title = Pattern.compile(regex_title); Matcher m_content; Matcher m_title; // 3、编写循环,创建向所有小说章节页面发起网络请求的url对象 for (int i = 1; i <= 120; i++) { System.out.println("第" + i + "章开始下载。。。"); try { // 创建每一个页面的url对象 URL url = new URL("http://www.xbiquge.la/13/13959/"); // 创建网络读取流 BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),"utf8")); // 4、读取网络内容网络流BufferReader String str = null; // 5、创建输入流 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true))); while ((str = reader.readLine()) != null) { m_title = p_title.matcher(str.toString()); m_content = p_content.matcher(str.toString()); // 获取小说标题并写入本地文件 Boolean isEx = m_title.find(); if (isEx) { String title = m_title.group(); // 清洗得到的数据 title = title.replace("<title>", "").replace("</title>", ""); System.out.println(title); writer.write("第" + i + "章:" + title + "\n"); } while (m_content.find()) { String content = m_content.group(); // 清洗得到的数据 content = content.replace("<p>", "").replace("</p>", "").replace(" ", "").replace("?", ""); // 把小说内容写入文件 writer.write(content + "\n"); } } System.out.println("第" + i + "章下载完成........."); writer.write("\n\n"); writer.close(); reader.close(); } catch (Exception e) { System.out.println("下载失败"); e.printStackTrace(); } } } }
```java package novelCrawler; public class bqgThread { public synchronized void DownWait() { try { this.wait(); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } public synchronized void DownNotify() { this.notify();; } }
package ui; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JTextArea; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import novelCrawler.biquge; public class crawlerUI implements ActionListener { TextField novelName = new TextField(10); TextField novelSrc = new TextField("笔趣阁",10); TextField start = new TextField(10); JProgressBar jpb = new JProgressBar(); JPanel jp = new JPanel(); JProgressBar jpb2 = new JProgressBar(); JFrame myui = new JFrame("novelCrawler"); Button dl = new Button("开始下载"); public crawlerUI() { myui.setSize(400,300); myui.setLayout(null); Label label1=new Label("书 源"); label1.setBounds(10, 15, 30, 20); myui.add(label1); novelSrc.setBounds(70,15, 90, 20); myui.add(novelSrc); Label label2=new Label("书 名"); label2.setBounds(10, 45, 30, 20); myui.add(label2); novelName.setBounds(70,45, 90, 20); myui.add(novelName); Label label3=new Label("开始章节"); label3.setBounds(10, 75, 60, 20); myui.add(label3); jpb2.setBounds(70, 150, 200, 30); myui.add(jpb2); start.setBounds(70, 75, 90, 20); myui.add(start); jpb.setBounds(70, 100, 200, 30); myui.add(jpb); jpb.setValue(1); jpb.setStringPainted(true); jpb.setVisible(false); jpb2.setVisible(false); jpb2.setStringPainted(true); dl.setBounds(150, 200, 70,40 ); myui.add(dl); dl.addActionListener(this); myui.setVisible(true); // myui.setResizable(true); } static int stop = 0; public void actionPerformed(ActionEvent ev) { String name = novelName.getText(); System.out.println(name); String start1 = start.getText(); System.out.println(start1); Thread bqg = new Thread(new Runnable() { @Override public void run() { biquge bq = new biquge(name,start1,jpb,jpb2); } }); if(stop==1) { dl.setLabel("继续"); stop = 2; } else if(stop==2){ dl.setLabel("暂停"); stop = 1; } else { bqg.start(); stop = 1; dl.setLabel("暂停"); } } }
package ui; import javax.swing.*; import javax.swing.JTextArea; public class DownMsgUI { public JFrame dm ; public JTextArea ta ; public JScrollPane sp; public DownMsgUI(){ dm = new JFrame("下载信息"); ta= new JTextArea(); sp=new JScrollPane(ta); dm.setBounds(500, 500, 500, 500); ta.setBounds(70, 200, 200, 100); dm.add(sp); dm.setVisible(true); } }
-
杰奇1.7小说网站源码(PC版 WAP版) 仿笔趣阁模板 v3.1.zip
2019-07-07 00:40:19可自动生成txt文件,支持小说txt下载。 清新大气的小说网站模版,具备自动排版功能。 支持电脑版自动识别手机访问,自动跳转至手机版。 杰奇小说网站源码(PC版 WAP版) 仿笔趣阁模板前台截图 杰奇小说网站... -
python3.5爬虫完成笔趣阁小说的爬取
2020-05-09 23:41:29本文主要是利用python3.5完成了笔趣阁小说的爬虫程序存储章节txt到本地,方便阅读。 需求: 由于手机最近阅读笔趣阁的小说插了特别多的广告特别麻烦;所以就做了个小程序实现下文本的爬取,全部把小说爬取下来存储... -
HttpClients+Jsoup抓取笔趣阁小说,并保存到本地TXT文件
2018-10-10 17:13:00前言 首先先介绍一下Jsoup... 给大家看一下我之前爬取的数据,多开几个进程,挂机爬,差不多七个G,七百八十多部小说 代码开源 代码已经开源、托管到我的GitHub、码云: GitHub: ... -
小说站采集规则
2019-05-16 20:08:32这个文件有一些小说站采集规则 中文.txt 读书.txt www.23us.tv.txt 阿甘小说网.txt 笔趣阁b5200.net.txt ...笔趣阁com【列表采集】.txt 笔趣阁www.biquge.com.tw.txt 顶点.txt 少年文学网.txt 血红小说网.txt -
2020最新小说站采集规则整合版本.zip
2020-06-11 09:42:05tcms笔趣阁com【列表采集】txt tcms笔趣阁www.biquge.com.tw.txt tcms血红小说网txt tcms阿甘小说网xt tcms顶点txt tcms258zw.com201903181104.txt tcms58小说网201909022112txt tcms999WX201909022112txt tcms_E... -
YGBOOK小说采集系统
2021-04-06 00:55:19本软件以SEO性能极好的笔趣阁模板为基础,进行了大量优化,呈献给大家一款SEO优秀,不失美观大方的小说网站系统。 YGBOOK免费版本提供了基础小说功能,包括: 1.全自动采集2345导航小说的数据,内置采集规则,无需... -
toolkit-frame之toolkit-sprider(数据采集)---笔趣阁小说
2020-02-11 09:53:53采集笔趣阁小说,使用以下几个核心包: requests:2.10.0 beautifulsoup4:4.7.1 其中: 1、BaseFrame.__log__("开始采集中国船舶网的数据...") BaseFrame.__log__() 就是我个人封装的日之类替换成print就可以。... -
爬虫新手入门实战项目(爬取笔趣阁小说并下载)
2019-05-09 15:23:41简单来说就是一个脚本,他能帮助我们自动采集我们需要的资源。 爬虫步骤 获取数据 # 导入模块 import requests import re url = 'https://www.biqudu.com/43_43821/' 模拟头部信息 headers = {"User-Agent":... -
杰奇小说2.4完美无错版
2020-09-27 04:43:302、更改网站默认编码为uft8,采集GBK自动转为utf8,创建数据库编码为utf8mb4,分别把sql目录下的struct.sql和data.sql导入数据库,作为网站初始的数据库结构及数据,更改默认存储为INNODB 3、上传网站程序后,以下4... -
初学爬虫-笔趣阁爬虫
2022-06-23 09:39:55base_url=input(“请输入小说url:”) headers={ “User-Agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0” } response=requests.get(base_url,headers=headers) r=... -
YGBOOK小说采集系统 php版 v1.4
2021-03-25 09:30:38YGBOOK小说内容管理系统(以下简称YGBOOK)提供一个轻量级小说网站解决方案,基于ThinkPHP+MySQL的技术开发。YGBOOK是介于CMS和小偷网站之间...本软件以SEO性能极好的笔趣阁模板为基础,进行了大量优化,呈献给大家一... -
python爬虫爬取小说写入txt文档
2022-04-06 22:44:23下面是对笔趣阁网页进行爬取斗破苍穹数据写入txt文件的代码,有兴趣的可以去研究研究。 import requests from lxml import etree def get_list(): """获取笔趣阁网页斗破苍穹的数据""" re = requests.get('... -
【web实战2】基于源码搭建小说自动采集网站
2018-02-28 23:27:320 实现原理解读通过php中的file_get_contents目标网站服务器上资源文件读取并进行替换修改来自动采集目标网站小说并进行自动更新1网站仿建实战1.1网址:goodstudents.lnkjdx.com1.2效果图2源码解读2.1 index.... -
【Python】手把手教你用Python爬取某网小说数据,并进行可视化分析
2021-09-23 01:08:16网络文学是以互联网为展示平台和传播媒介,借助相关互联网手段来表现文学作品及含有一部分文字作品的网络技术产品,在当前成为一种新兴的文学现象,并快速兴起,各种网络小说也是层出不穷,今天我们使用... -
关关采集器5.6——内链版
2015-12-29 12:57:05<长尾>无弹窗|最新章节|txt下载|小说5200|帖吧|全文阅读|sodu|吧|笔趣阁|长尾>//此处设置长尾关键词,以|分隔 <个数>1个数>//此处为文章内链数量--> <随机推荐>1随机推荐>//随机推荐开关 <推荐方式>1推荐方式>//此处... -
解决杰奇程序不能下载txt,杰奇小说下载页空白问题
2021-04-22 18:12:57使用率最高的小说连载系统应该属于杰奇小说连载系统了,目前影响力最大的小说网站应该是各种笔趣阁小说站了,而大多数笔趣阁小说阅读网都是使用杰奇小说连载系统。小说站搭建完成后,大家或许都会有一个困惑,就是... -
httpclient+jsoup实现小说线上采集阅读
2018-10-19 17:46:00前言 用过老版本UC看小说的同学都知道,当年版权问题比较松懈,我们可以再UC搜索不同来源的小说,并且阅读,那么它是怎么...在我的上一篇博客中实现了小说采集并保存到本地TXT文件 HttpClients+Jsoup抓取笔趣阁小... -
【零基础学爬虫】用python爬取小说
2022-04-28 10:20:092022/4/25 20:43 # @Auther : 顾家成 # @Fire .py # @Software PyCharm # 需求 爬取小说 笔趣阁《凡人修仙传》 import requests #from urllib import request from bs4 import BeautifulSoup import time import ... -
狂雨小说1.2.3
2020-07-31 21:58:14狂雨小说1.2.3 演示地址:book.luoxian.xyz 基于 ThankPHP + Mysql 所开发 -
python爬虫入门之爬取小说.md
2018-09-18 20:59:29新手教学:用Python爬取小说 我们在学习Python之余总想着让其更具趣味性,可以更好地学习。下面我将讲解如何去从网站中爬取我们想看的小说。让我们枯燥无聊的学习生涯稍微多些趣味。 需要只是一点点对requests库、... -
仿砍柴网资讯门户网安装教程,让搭建微信公众号文章自动采集变得简单
2020-06-03 15:15:32推荐小说阅读平台笔趣阁:https://www.mddtxt.com 查看各版本功能,收费及服务区别,见程序帮助文档 help.chm,关于->免费版本和收费版功能列表) 或是访问我们的网站 ★★⑤软件特性★★ 1、无限级多页采集,可以...