爬墙技术哪家强,师范找锡伟
爬虫简介
爬虫主要用到requests库和re库,首先导入库,然后利用库中方法
import requests
import reresponse = requests.get('http://ishuo.cn/') # 模拟浏览器打开网页
# print(response.status_code) # 200成功,301,404网页丢失
# print(response.encoding) # utf-8
data = response.text #
# print(data)# .匹配所有字符,*表示前面的字符0到无穷个
res = re.findall('<div class="content">(.*?)</div>',data)
print(res)
段子网爬墙
# requests库
## requests.get(url) 模拟浏览器打开网页# re库import requests
import reresponse = requests.get('http://ishuo.cn/') # 模拟浏览器打开网页
# print(response.status_code) # 200成功,301,404网页丢失
print(response.encoding="gd231-8") # utf-8
data = response.text #
print(data)# # .匹配所有字符,*表示前面的字符0到无穷个
# content_res = re.findall('<div class="content">(.*?)</div>', data)
# title_res = re.findall('<a href="/subject/.*?">(.*?)</a>', data)
# # print(title_res.index('活得糊涂的人,容易幸福'))
# # print(title_res.index('购买银行理财产品亏损后如何起诉'))
# title_res= title_res[10:60]
# # print(title_res)
#
#
# title_content_dic = {}
# for i in range(len(title_res)):
# title_content_dic[title_res[i]] = content_res[i]
# # print(title_content_dic)
#
# # print(title_content_dic)
# for i in title_content_dic.items():
# # print(str(i)+'\n')
# print(f'{i[0]:<40} | {i[1]:<1000}')# 第一种:
'<a href="/subject/5898">这个笑话好内涵,你懂了没?</a>''''
//g.alicdn.com
//img.alicdn.com
//tce.alicdn.com
'''
#方法二
import requests
import reresponse = requests.get('http://ishuo.cn/') # 模拟浏览器打开网页data = response.textres = re.findall('<li class="list_li">(.*?)</li>',data)title_content_desc_dic = {}
for i in res:content = re.findall('<div class="content">(.*?)</div>',i)[0]title = re.findall('<a href="/subject/.*?">(.*?)</a>',i)[0]desc = re.findall('</a>(04月.*?)</div>',i)[0]title_content_desc_dic[title] = (content,desc)for i in title_content_desc_dic.items():print(f'{i[0]:<100} | {i[1]}')
#图片爬墙
import requests
import reresponse = requests.get('http://www.nipic.com/design/acg/renwu/index.html?page=1&tdsourcetag=s_pcqq_aiomsg')
data = response.text
# print(data)img_url_res = re.findall('data-src="(.*?)"',data)
for i in img_url_res:img_response = requests.get(i)img_data = img_response.contentimg_name = i.split('/')[-1]f=open(img_name,'wb')f.write(img_data)# f.flush() # 快速刷新import re
import os
import time
import requests
from selenium import webdriver#########################
###此段代码不需要关心啥意思###
#########################if not os.path.exists('百度图片'):os.mkdir('百度图片')#####################
###限制30张图片的代码###
##################### 获取所有图片
response = requests.get('http://image.baidu.com/search/index?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs7&word=风景')
data = response.text
img_desc_dics = re.findall("app.setData(\('imgData.*?\));", data, re.S)[0]
img_desc_dics = eval(str(img_desc_dics))# 获取所有图片的数据
img_datas = img_desc_dics[1]['data']
count = 0
for img_data in img_datas:# 获取搜索图片的参数os_ = img_data.get('os')cs_ = img_data.get('cs')if os_ and cs_:# 获取搜索图片的信息img_search_url = f'http://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E9%A3%8E%E6%99%AF&step_word=&hs=0&pn=1&spn=0&di=195030&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs={cs_}&os={os_}'img_search_response = requests.get(img_search_url)img_search_data = img_search_response.text# 获取图片信息img_url = re.findall('''\('firstSc'\);" src="(.*?)"''', img_search_data)[0]img_name = img_url.split('/')[-1]img_name = os.path.join('百度图片', img_name) # 拼接出图片的地址,如 百度图片/3822951_144045377000_2.jpg# 保存图片img_response = requests.get(img_url)img_data = img_response.contentfw = open(img_name, 'wb')fw.write(img_data)fw.flush()# 提示count += 1print(f'{img_name}保存成功,成功保存{count}张')# 防止百度禁ip,慢一点time.sleep(0.01)#########################################################################
###自行百度selenium的用法,使用这一套代码可以无限爬取所有图片,否则将被限制30张###
#########################################################################
# page_count_end = 2 # 爬取 指定数字(10)* 30 = 300张图片
# chrome = webdriver.Chrome()
#
# try:
#
# chrome.implicitly_wait(10)
# chrome.get(
# 'http://image.baidu.com/search/index?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs7&word=风景')
#
# js_code = '''
# window.scrollTo(0, document.body.scrollHeight);
# var lenOfPage = document.body.scrollHeight;
# return lenOfPage
# '''
#
# # selenium控制爬取页数
# count = 0
# page_count = 0
# while page_count < page_count_end:
# try:
# page_count += 1
# chrome.execute_script(js_code)
# time.sleep(0.3)
# except:
# continue
#
# img_desc_search_urls = re.findall('href="(/search/detail\?.*?)"', chrome.page_source, re.S) # re.S使.可以匹配换行符
#
# # 获取所有图片的数据
# for img_data in img_desc_search_urls:
# try:
# # 获取搜索图片的参数
# os_ = re.findall('os=(.*?)&', img_data)[0]
# cs_ = re.findall('cs=(.*?)&', img_data)[0]
#
# if os_ and cs_:
# # 获取搜索图片的信息
# img_search_url = f'http://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E9%A3%8E%E6%99%AF&step_word=&hs=0&pn=1&spn=0&di=195030&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs={cs_}&os={os_}'
# img_search_response = requests.get(img_search_url)
# img_search_data = img_search_response.text
#
# # 获取图片信息
# img_url = re.findall('''\('firstSc'\);" src="(.*?)"''', img_search_data)[0]
# img_name = img_url.split('/')[-1]
# img_name = os.path.join('百度图片', img_name) # 拼接出图片的地址,如 百度图片/3822951_144045377000_2.jpg
#
# # 保存图片
# img_response = requests.get(img_url)
# img_data = img_response.content
# fw = open(img_name, 'wb')
# fw.write(img_data)
# fw.flush()
#
# # 提示
# count += 1
# print(f'{img_name}保存成功,成功保存{count}张')
#
# # 防止百度禁ip,慢一点
# time.sleep(0.01)
# except:
# continue
#
# except Exception:
# pass
#
# finally:
# chrome.close()
视频爬墙
import requests
import reresponse = requests.get('http://www.mod.gov.cn/v/index.htm')
# response.encoding = 'utf8'
data = response.text
# print(data)# mp4_res1 = re.findall('<a href="(.*?)" class="img">',data)
# for i in mp4_res1:
# print(i)mp4_res2 = re.findall('<a href="(.*?)">', data)for i in mp4_res2: # type:strres = re.findall('(.*?htm)', i)[0]res = 'http://www.mod.gov.cn/v/' + resresponse = requests.get(res)data = response.text# http://vv.chinamil.com.cn/asset/category3/2019/06/27/asset_357593.mp4url_res = re.findall('//Video (.*?.mp4)',data)[0]mp4_response = requests.get(url_res)mp4_data = mp4_response.contentf = open('test.mp4','wb')f.write(mp4_data)# break'''
<a href="2019-07/20/content_4846213.htm" class="img"><img src="attachement/jpg/site21/20190720/6c4b9041ab8b1e9ca1be01.jpg" border="0"><em class="video_40x40"></em></a>
'''
转载于:https://www.cnblogs.com/quyang46/p/11227868.html
爬墙技术哪家强,师范找锡伟相关推荐
- 百度:AI技术哪家强,度厂科大最在行?
大厂新闻天天有,"找工作" 深度体验日记独此一份 秋招过半,offer拿到手软?那么百度的人工智能有多魔幻?京东的亦庄革命区到底有多远?头条福利是不是真的好到"人神共愤& ...
- 毕业季.公司 | 百度:AI技术哪家强,度厂科大最在行?
全文共3344字,预计学习时长9分钟 大厂新闻天天有,"找工作" 深度体验日记独此一份 秋招过半,offer拿到手软?那么百度的人工智能有多魔幻?京东的亦庄革命区到底有多远?头条福 ...
- Http Ajax技术哪家强?Axios、Superagent、Request、Fetch、Supertest技能大比拼!
Http Ajax技术哪家强?Axios.Superagent.Request.Fetch.Supertest技能大比拼! 现在,当您了解所有最著名的 JavaScript 框架时,是时候介绍 202 ...
- 计算机网络技术表白,表白技术哪家强?看我武信各专业花式表白
原标题:表白技术哪家强?看我武信各专业花式表白 马上就到"5.20"表白日了 不同专业学科的人在表白这件事上脑回路都不相同 快来看看我们武信各大专业的花式表白 总有一款适合你 表白 ...
- APP在线制作平台,终极技术哪家强?
APP在线制作平台,终极技术哪家强? 你是否曾经觉得,市面上所有的APP都不能完全满足你的要求?你是否曾有很好的点子,却苦于缺乏技术而无法实现进一步的发展?你是否曾经费劲千辛万苦,做出的APP却无 ...
- PAT-Day1-挖掘机技术哪家强
题目 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校.输入格式: 输入在第 1 行给出不超过 10的5次方 的正整数 N,即参赛人数. ...
- “星光级”大势已成 “星光”技术哪家强?
论2016年主流技术有哪些?星光级算一个热门.星光级摄像机作为近两年安防监控市场上的主流产品,受到广大工程商的喜爱.那么,究竟什么是星光级摄像机,它有哪些优势?众多"星光级"产品中 ...
- Solr vs ElasticSearch,搜索技术哪家强
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 Solr和ElasticSearch到底有一些什么不同? ...
- 活体检测技术哪家强?实测N种场景告诉你答案
首先,什么是活体检测技术? 活体检测是在一些身份验证场景确定对象真实生理特征的方法,在人脸识别应用中,活体检测能通过眨眼.张嘴.摇头.点头等组合动作(配合式),使用人脸关键点定位和人脸追踪等技术,验证 ...
最新文章
- openstack安装在虚拟机上重启之后无法启动问题
- AV1时代要来了,超高清视频时代视频编码技术的机遇与挑战
- 49 - 算法 - 二叉树 - leetcode108.-将有序数组转换为二叉搜索树-中序遍历 - vector
- iOS开发UI篇—常见的项目文件介绍
- web前端程序员前景及优劣势分析
- springboot配置文件密文解密
- 基于堆栈的缓冲区溢出_基于堆栈溢出问题构建搜索引擎
- 修改element-ui默认的开关样式
- Tasteless challenges hard WP
- 祝贺丨openGauss正式亮相,云和恩墨发布可公开下载的容器镜像
- Learning to Track with Object Permanence阅读笔记
- 收获与努力同行——2015年总结
- Java基础321 - 如何重写equals方法
- C基础学习笔记——01-C基础第02天(用户权限、VI操作、Linux服务器搭建)
- 嵌入式关键字英文对照
- AWS强烈反击Elastic,欲打造自己的Elasticsearch开源产品OpenSearch
- 阿里成立MMC事业群,社区团购为何如此火?
- Formatter(格式化)
- [转载]ExtJs4 笔记(2) ExtJs对js基本语法扩展支持
- CD网站用户消费行为的分析报告
热门文章
- 跪求AI编程语言--纯中文代码
- 使用jsp:useBean指令
- python是一种通用编程语言-想自学一种编程语言,各种编程语言都有什么区别?...
- 风云编程python-动态排名可视化 | 带你领略编程语言20年风云变化
- python编程语法-Python编程入门——基础语法详解
- 简明python教程 豆瓣-福利分享:个人整理的Python书单,从基础到进阶
- vb和python-vb与python
- 没有统计学基础可以学python-想入门数据分析,现在转行还来得及吗?
- esp32 python-ESP32教程:MicroPython支持
- python手机版怎么运行项目或脚本-python脚本运行的几种方式