由于爬虫代码都不多,
所以我决定在这篇博文上更新所有我觉得比较实用的python代码
方便以后自己调用

环境:python3.7

百度图片爬虫

二次元图片爬取

唐三小说爬取

文件格式命名

百度图片爬虫

百度图片网站

import re
import requests
from urllib import error
from bs4 import BeautifulSoup
import osnum = 0
numPicture = 0
file = ''
List = []def Find(url):global Listprint('正在检测图片总数,请稍等.....')t = 0i = 1s = 0while t < 1000:Url = url + str(t)try:Result = requests.get(Url, timeout=7)except BaseException:t = t + 60continueelse:result = Result.textpic_url = re.findall('"objURL":"(.*?)",', result, re.S)  # 先利用正则表达式找到图片urls += len(pic_url)if len(pic_url) == 0:breakelse:List.append(pic_url)t = t + 60return sdef recommend(url):Re = []try:html = requests.get(url)except error.HTTPError as e:returnelse:html.encoding = 'utf-8'bsObj = BeautifulSoup(html.text, 'html.parser')div = bsObj.find('div', id='topRS')if div is not None:listA = div.findAll('a')for i in listA:if i is not None:Re.append(i.get_text())return Redef dowmloadPicture(html, keyword):global num# t =0pic_url = re.findall('"objURL":"(.*?)",', html, re.S)  # 先利用正则表达式找到图片urlprint('找到关键词:' + keyword + '的图片,即将开始下载图片...')for each in pic_url:print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each))try:if each is not None:pic = requests.get(each, timeout=7)else:continueexcept BaseException:print('错误,当前图片无法下载')continueelse:string = file + r'\\' + keyword + '_' + str(num) + '.jpg'fp = open(string, 'wb')fp.write(pic.content)fp.close()num += 1if num >= numPicture:returnif __name__ == '__main__':  # 主函数入口word = input("请输入搜索关键词(可以是人名,地名等): ")#add = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E5%BC%A0%E5%A4%A9%E7%88%B1&pn=120'url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + '&pn='tot = Find(url)Recommend = recommend(url)  # 记录相关推荐print('经过检测%s类图片共有%d张' % (word, tot))numPicture = int(input('请输入想要下载的图片数量 '))file = input('请建立一个存储图片的文件夹,输入文件夹名称即可')y = os.path.exists(file)if y == 1:print('该文件已存在,请重新输入')file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可')os.mkdir(file)else:os.mkdir(file)t = 0tmp = urlwhile t < numPicture:try:url = tmp + str(t)result = requests.get(url, timeout=10)print(url)except error.HTTPError as e:print('网络错误,请调整网络后重试')t = t+60else:dowmloadPicture(result.text, word)t = t + 60print('当前搜索结束,感谢使用')print('猜你喜欢')for re in Recommend:print(re, end='  ')

二次元图片爬取

二次元图片网站

import urllib.request
import re                  #成功爬取当前页面所有图片地址def open_url(url):response =urllib.request.urlopen(url)html=response.read()html=html.decode("utf-8")return htmldef get_img(html):par =r'<img class="pic-large" src="(.*?)"'html=re.findall(par,html)for each in html:print(each)filename = each.split("/")[-1]urllib.request.urlretrieve(each,filename,None)if __name__ == '__main__':while(1):word=input(("请输入所要图片的首页网址:"))url1=word[:-5]url2=".html"url=url1+url2get_img(open_url(url))for num in range(2,9):url=url1+"_"+str(num)html=".html"text=url+htmlprint(text)get_img(open_url(text))

唐三小说爬取

# coding=utf-8
from bs4 import BeautifulSoup
import requests
#我这里直接定义了一个类,这样就可以方便的调用
class book(object):def __init__(self):self.target="http://www.qiushuge.net/daomubiji2019/"#目录网址self.names=[]#存放章节名字self.urls=[]#存放urlself.nums=0#章节数#获取url和章节数def getmessage(self):req=requests.get(url=self.target)#发出request请求,得到数据#把内容都编码,防止乱码问题出现req.encoding=('utf-8')content=req.text#获取内容bf_content=BeautifulSoup(content, "lxml")#对内容进行处理,以便后续过滤bf_list=bf_content.find_all('span')#查找所有的span标签下的内容如果有class可以加上:class_ = 'showtxt'bf_content2=BeautifulSoup(str(bf_list),"lxml")#再次进行过滤,因为我们需要span下的a标签(注意要先转换成str类型)bf_list2=bf_content2.find_all('a')#查找所有的a标签,找到所需要的数据for value in bf_list2:#遍历数据,把它放到列表中self.names.append(value.text)#添加数据 .text就是a标签的数据self.urls.append(value.get('href'))#.get可以查找标签里面的参数self.nums=len(self.names)#获取总的章节数#获取章节内容def gettext(self,target):req=requests.get(url=target)req.encoding = ('utf-8')content=req.textbf_content=BeautifulSoup(content,"lxml")bf_list=bf_content.find_all('p')val=''for value in bf_list:val+=('  '+value.text+'\n\n')#这里是循环遍历内容,然后不断把内容拼接起来return val#返回拼接的内容def write(self,name,path,text):with open(path,'a',encoding='utf-8') as f:#这里是把内容写到文本中f.write(name+'\n')f.write(text+'\n\n')if __name__ == "__main__":d1=book()#先初始化类d1.getmessage()#执行类的函数print('正在下载《盗墓笔记》...')for value in range(d1.nums):print('正在下载:%s',d1.names[value])d1.write(d1.names[value],'盗墓笔记.txt',d1.gettext(d1.urls[value]))#不断把每章的内容都写到文文中

文件格式命名

#coding=gbk
import os
import sys
def rename():path=input("请输入路径(例如D:\\\\picture):")name=input("请输入开头名:")startNumber=input("请输入开始数:")fileType=input("请输入后缀名(如 .jpg、.txt等等):")print("正在生成以"+name+startNumber+fileType+"迭代的文件名")count=0filelist=os.listdir(path)for files in filelist:Olddir=os.path.join(path,files)if os.path.isdir(Olddir):continueNewdir=os.path.join(path,name+str(count+int(startNumber))+fileType)os.rename(Olddir,Newdir)count+=1print("一共修改了"+str(count)+"个文件")rename() 

【Python】有效资源爬取并集相关推荐

  1. python爬电影_使用Python多线程爬虫爬取电影天堂资源

    最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...

  2. 【Python爬虫】爬取云班课资源,活动

    CSDN不让放(因为真的很好用哈哈哈),这里放博客园链接: [Python爬虫]爬取云班课资源,活动

  3. Python requests+bs4爬取中药数据库TCMSP的资源获得清肺排毒汤的靶向基因(曲线救国)

    Python requests+bs4 爬取TCMSP的资源获得清肺排毒汤的靶向基因 为研究清肺排毒汤的中药材对于新冠肺炎的作用机制,需要收集相关数据,于是将目光洒向了TCMSP.. 检索首页是这样的 ...

  4. python爬虫之爬取网页基础知识及环境配置概括

    记:python爬虫是爬取网页数据.统计数据必备的知识体系,当我们想统计某个网页的部分数据时,就需要python爬虫进行网络数据的爬取,英文翻译为 spider 爬虫的核心 1.爬取网页:爬取整个网页 ...

  5. Python QQ音乐爬取

    Python QQ音乐爬取 没错正如你所见,这是一篇关于Python爬虫的文章.希望你在看代码前,要明确以下几点. 1.这个爬虫所爬取的网站是qq音乐的PC端官网 2.爬取的音乐只是官方允许给我们听的 ...

  6. Python实战,爬取金融期货数据

    大家好,我是毕加锁. 今天给大家带来的是 Python实战,爬取金融期货数据 文末送书! 文末送书! 文末送书! 任务简介   首先,客户原需求是获取https://hq.smm.cn/copper网 ...

  7. Python:网络爬虫爬取某表情包网站

    Python:网络爬虫爬取某表情包网站 参考: 爬虫基础知识点汇总(html文件基础和4个常用库 超级详细长文预警) [爬虫教程]吐血整理,最详细的爬虫入门教程~ HTML的简单介绍 HTML的全称为 ...

  8. python scrapy+Mongodb爬取蜻蜓FM,酷我及懒人听书

    1.初衷:想在网上批量下载点听书.脱口秀之类,资源匮乏,大家可以一试 2.技术:wireshark scrapy jsonMonogoDB 3.思路:wireshark分析移动APP返回的各种连接分类 ...

  9. python使用 Scrapy 爬取唯美女生网站的图片资源

    python  python使用 Scrapy 爬取唯美女生网站 的资源,图片很好,爬取也有一定的难度,最终使用Scrapy获取了该网站 1.5W多张美眉照片....如有侵权,联系,立删除. ==== ...

最新文章

  1. 浅谈Java的输入输出流
  2. linux shell 中的sleep命令
  3. hive 小技巧总结
  4. MarkdownPad安装以及绘制 UML 图
  5. 如何使用 React 和 React Hooks 创建一个天气应用
  6. 独家 | 蚂蚁金服TRaaS技术风险防控平台解密
  7. .NET 开源免费图表组件库,Winform,WPF 通用
  8. log4j之log4j2.xml使用
  9. 组合数学 —— 组合数取模 —— 卢卡斯定理与扩展卢卡斯定理
  10. 个人博客系统毕业设计开题报告
  11. java collections读书笔记(3) vector(2)
  12. Android 使用Nginx rtmp 模块
  13. 有意思的clip-path
  14. javaweb四种域对象的应用
  15. oracle同时删除一行数据,oracle 多表删除 同时删除多表中关联数据
  16. XML+Application来编写计数器(二)
  17. 将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。...
  18. python批量下载静态页面_Python selenium如何打包静态网页并下载
  19. 【java与智能设备】01_2Android简介与环境搭建——开发环境
  20. SQLServer中sp_Who、sp_Who2和sp_WhoIsActive介绍和查看监视运行

热门文章

  1. [Java基础]自动装箱和拆箱
  2. [剑指offer]面试题8:旋转数组的最小数字
  3. RocketMq重试及消息不丢失机制
  4. CF1208D Restore Permutation
  5. 2019 ICPC Asia Nanjing Regional
  6. 模板:回文自动机(PAM)
  7. CSP2019洛谷P5665:划分(单调队列,高精度)
  8. CF573D-Bear and Cavalry【动态dp】
  9. P4495-[HAOI2018]奇怪的背包【数论,dp】
  10. jzoj2700-数字【数论,LCM】