请提前搭好梯子,如果没有梯子的话直接403。

1.所用到的包

requests: 和服务器建立连接,请求和接收数据(当然也可以用其他的包,socket之类的,不过requests是最简单好用的)

BeautifulSoup:解析从服务器接收到的数据

urllib:  将网页图片下载到本地

import requests
from bs4 import BeautifulSoup
import urllib

2.获取指定页面的html内容并解析

我这里选取"blowjob"作为关键字

key_word='blowjob'
url = 'https://www.pornhub.com/video/search?search='+key_word
html=requests.get(url) soup=BeautifulSoup(html.content,'html.parser')

3.从html中筛到全部image并进行遍历

使用find_all函数,将所有img区块中包含属性'width':"150"的存储到jpg_data列表中,并对jpg_data列表进行遍历

jpg_data=soup.find_all('img',attrs={'width':"" })
for cur in jpg_data:
pic_src=cur['src']

4.进一步筛选,并找到图片地址进行下载操作

cur['src']为当前图片地址,cur['alt']为当前图片标题,urllib.requests.urlretrieve操作将图片保存到当地,默认地址为本py文件所在目录,如有需要也可自定义保存目录。

for cur in jpg_data:
pic_src=cur['src']
if(".jpg" in pic_src):
filename=cur['alt']+'.jpg'
with open(filename,'wb') as f:
f.write(bytes(pic_src,encoding='utf-8'))
print(filename)
f.close()

完整代码:

import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'} url = 'https://www.pornhub.com/video/search?search=blowjob'
html=requests.get(url,headers=headers) soup=BeautifulSoup(html.content,'html.parser')
jpg_data=soup.find_all('img',attrs={'width':"" })
for cur in jpg_data:
pic_src=cur['src']
if(".jpg" in pic_src):
filename=cur['alt']+'.jpg'
with open(filename,'wb') as f:
f.write(bytes(pic_src,encoding='utf-8'))
print(filename)
f.close()

以上所作示例仅爬取了keyword关键词搜索下第一页的图片内容,如需要爬取多页,

可在url后加'&page=xx'并进行遍历

for i in range(0,10):
  url = 'https://www.pornhub.com/video/search?search=blowjob'+'&page='+str(i)

程序运行结果:

最新文章

  1. [c++] Callable Objects
  2. Session监听器
  3. mysql5.5手册读书日记(4)
  4. jQuery框架的简单使用(H5)
  5. MapReduce多表连接
  6. #Leet Code# Convert Sorted Array to Binary Search Tree
  7. SVN global ignore pattern for c#
  8. Android UI 之TextView控件属性列表
  9. 【puppeteer】前端自动化初探(一)
  10. 初学Python——Socket网络编程
  11. javascript运算符instanceof
  12. bzoj 3772 :精神污染 线段树+打标记 or 主席树
  13. IIS 之 连接数、并发连接数、最大并发工作线程数、队列长度、最大工作进程数
  14. logging模块配置笔记
  15. 【Demo】CSS3 3D转换
  16. JVM高级特性与实践(一):Java内存区域 与 内存溢出异常
  17. 数据库之MySQL(四)
  18. java中下面这些引入都代表什么意思啊?
  19. luogu1901 发射站
  20. 如何完整反编译AndroidMainfest.xml

热门文章

  1. 一 下载Java的JDK及配置环境变量
  2. NLP(二十一)根据已有文本LSTM自动生成文本
  3. [USACO07OCT]障碍路线 & yzoj P1130 拐弯 题解
  4. yzoj P2350 逃离洞穴 题解
  5. MySql连接笔记
  6. Flink文章测试
  7. Spring Boot2 系列教程(四)理解Spring Boot 配置文件 application.properties
  8. Redis的那些最常见面试问题(转)
  9. Android 网络通信框架Volley(二)
  10. ThreadPoolTaskExecutor介绍