GET请求/百度贴吧 有bug
# -*- coding:utf-8 -*-
import urllib, urllib2
import re
import sys class Cuzz():
"""这是一个类"""
def __init__(self, url, header, start_page, end_page):
self.url = url
self.header = header
self.start_page = start_page
self.end_page = end_page def deal_url(self):
"""处理url"""
for i in range(self.start_page, self.end_page+1):
num = 50*(i-1)
url = self.url+str(num)
request = urllib2.Request(url, headers=self.header)
response = urllib2.urlopen(request)
htmltext = response.read()
self.load_images(htmltext) def load_images(self, htmltext):
"""下载图片"""
# 找出这一页的所有帖子类似这样的/p/1111111111
pattern = re.findall(r"/p/\d+", htmltext)
for temp in pattern:
url = "http://tieba.baidu.com" + temp
request = urllib2.Request(url, headers=self.header)
response = urllib2.urlopen(request)
htmltext1 = response.read()
self.save_images(htmltext1) def save_images(self, htmltext1):
"""保存到本地"""
image_links = re.findall(r"https://imgsa\.baidu.+?\.jpg",htmltext1)
for url in image_links:
request = urllib2.Request(url, headers=self.header)
response = urllib2.urlopen(request)
htmltext1 = response.read()
print htmltext1
with open("./images/"+str(url[-10:-1]), "w") as f:
f.write(htmltext1) def main():
"""控制"""
header = {"User-Agent":"Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1"}
title = raw_input("请输入您要下载的贴吧:")
keyword = {"kw":title} # 是一个字典的格式,转换后"kw=%34dgfdg%fg keyword = urllib.urlencode(keyword) # 有中文需要转成url的格式 url = "https://tieba.baidu.com/f?" + keyword + "&ie=utf-8&pn=" start_page = int(raw_input("请输入起始页面:"))
end_page = int(raw_input("请输入截止页面:")) cuzz = Cuzz(url, header, start_page, end_page)
cuzz.deal_url()
GET请求/百度贴吧 有bug的更多相关文章
- ios/iphone手机请求微信用户头像错位BUG及解决方法
		
转:http://www.jslover.com/code/527.html ios/iphone手机请求微信用户头像错位BUG及解决方法 发布时间:2014-12-01 16:37:01 评论数:0 ...
 - 多线程、多进程、协程、IO多路复用请求百度
		
最近学习了多线程.多进程.协程以及IO多路复用,那么对于爬取数据来说,这几个方式哪个最快呢,今天就来稍微测试一下 普通方式请求百度5次 import socket import time import ...
 - 关于百度分享——bdCustomStyle一点bug
		
最近碰到一个项目,因为用上百度分享,出现了奇怪的bug. 具体是,当访问JSP页面时,js脚本会执行一次,而java脚本执行了两次. 最后排查发现是百度分享js脚本的问题,把"bdCusto ...
 - jsonp跨越请求百度搜索api 实现下拉列表提示
		
题目来源: 最近在做百度IFE前端技术学院的题,然后有一题就是模拟百度搜索智能提示.题目是开源的,稍后给出地址. 因为博主没学过后端啊,欲哭无泪,所以不能实现后端模糊搜索,那如果前端ajax纯粹请求一 ...
 - 百度地图 javascript相关Bug搜集
		
一 在手机里用百度地图js版做webapp bug集合 1 之前用2.0版本的时候发现只要地图添加了覆盖物,无论数量多少,当地图放大到很小的范围时候,会卡死 1.1 当时处理办法:将版本降低至1. ...
 - angular2jsonp如何跨域请求百度API进行定位
		
前提,百度api的申请,不会的可以百度一下,下面是连接 http://lbsyun.baidu.com/index.php?title=webapi/ip-api 1.appMoudle里引入 imp ...
 - 腾讯云图片鉴黄集成到C#  SQL Server 怎么在分页获取数据的同时获取到总记录数  sqlserver 操作数据表语句模板  .NET MVC后台发送post请求  百度api查询多个地址的经纬度的问题  try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后?  js获取某个日期
		
腾讯云图片鉴黄集成到C# 官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...
 - AJax跨域请求百度音乐接口数据展示页面
		
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - vue-resource: jsonp请求百度搜索的接口
		
1. yarn add vue-resource 2. main.js引入vue-resource import Vue from 'vue' import MintUI from 'mint-ui' ...
 
随机推荐
- java 内部类和闭包
			
内部类(inner class) public class Outer{ private String name; class Inner{ public String getOuterName(){ ...
 - python 标准模块shlex
			
shlex模块为基于Uninx shell语法的语言提供了一个简单的lexer(也就是tokenizer) 举例说明: 有一个文本文件quotes.txt This string has embedd ...
 - .net core 使用X509 私钥加密请求
			
1.获取证书路径 var basePath = _environment.ContentRootPath; //商户私钥证书,用于对请求报文进行签名 "); 2.数据加密 .net core ...
 - 25个Java机器学习工具和库
			
本列表总结了25个Java机器学习工具&库: 1. Weka集成了数据挖掘工作的机器学习算法.这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用.Weka包括一系列的工具,如数据预 ...
 - 项目详解4—haproxy 详解
			
一.企业服务架构图及负载均衡的要求 1.场景说明 在企业生产环境中,每天会有很多的需求变更,比如增加服务器.新业务上线.url路由修改.域名配置等等,对于前端负载均衡设备来说,容易维护,复杂度低,是首 ...
 - ConstraintLayout+radioGroup做一个tab.简单好用。
			
主页tab是必须会有的,各种实现也很多.各有千秋.但目标都是简单.可控.今天用ConstraintLayout+radioGroup做一个tab.简单性可控性都还可以.本文目的把ConstraintL ...
 - Python学习笔记 set&&dict
			
dict 是个好东西啊,这个东东是类似于c++里面的map.其形式为 dict={key:value,key:value....} 这个东西好玩的地方主要在于 1.他的key值查找采用的是哈希算法,速 ...
 - LINQ学习系列-----1.3 扩展方法
			
这篇内容继续接着昨天的Lambda表达式的源码继续下去.昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性. 一.扩展方法介绍 废话不多说,先上源码截图: 上图中Ge ...
 - select into
			
IN 子句可用于向另一个数据库中拷贝表: SELECT * INTO Persons IN 'Backup.mdb' FROM Persons
 - java agent
			
cmd使用java -help可以看到关于agent参数: -agentlib:<libname>[=<选项>] 加载本机代理库 <libname>, 例如 -ag ...