python:爬虫1——实战(下载一张图片、用Python模拟浏览器,通过在线的有道词典来对文本翻译)

一、下载一只猫

import urllib.request

response = urllib.request.urlopen("http://cdn.duitang.com/uploads/item/201111/24/20111124222137_wHYwc.jpg")
cat_img = response.read()

with open(‘cat_0.jpeg‘, ‘wb‘) as f:
    f.write(cat_img)

urlopen()中的url可以是string,也可以是request object,因此可以是:

import urllib.request

req = urllib.request.Request("http://cdn.duitang.com/uploads/item/201111/24/20111124222137_wHYwc.jpg")
response = urllib.request.urlopen(req)
cat_img = response.read()

with open(‘cat_0.jpeg‘, ‘wb‘) as f:
    f.write(cat_img)

response.geturl()得到url地址

response.info()得到HTTPMessage对象,可以通过print()得到head信息

response.getcode()得到服务器的状态码200(正常响应)

二、利用有道词典翻译文本

<审查元素>network——preview,找到需要的path

然后切到headers——关注general、request headers(客户端发送请求的headers,服务端可以在此判断是否人为访问,User-Agent)python url/3.4、From Data、

urlopen()中data为None以get提交,有参数用post方式提交,data参数必须是一个标准格式application/x-www-form-urlencoded,可以用urllib.parse.urlencode()来将字符串转化为这个格式

import urllib.request
import urllib.parse
import json

url = ‘http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=http://fanyi.youdao.com/‘

data = {
‘i‘:‘china‘,
‘from‘:‘AUTO‘,
‘to‘:‘AUTO‘,
‘smartresult‘:‘dict‘,
‘sign‘:‘cf928c9af5dc3731276ad09db002e052‘,
‘client‘:‘fanyideskweb‘,
‘salt‘:‘1494249290636‘,
‘doctype‘:‘json‘,
‘version‘:‘2.1‘,
‘keyfrom‘:‘fanyi.web‘,
‘action‘:‘FY_BY_CLICKBUTTON‘,
‘typoResult‘:‘true‘
}

data = urllib.parse.urlencode(data).encode(‘utf8‘)
response = urllib.request.urlopen(url, data)
html = response.read().decode(‘utf-8‘)

print(html)    #发现是json格式

target = json.loads(html)

print(target)   #打印还原的json

但是当客户端码是python,并且当一个ip访问太多后,服务器会拉黑ip!

时间: 2024-11-05 18:32:33

python:爬虫1——实战(下载一张图片、用Python模拟浏览器,通过在线的有道词典来对文本翻译)的相关文章

python爬虫Urllib实战

Urllib基础 urllib.request.urlretrieve(url,filenname) 直接将网页下载到本地 import urllib.request >>> urllib.request.urlretrieve("http://www.hellobi.com",filename="D:\/1.html") ('D:\\/1.html', <http.client.HTTPMessage object at 0x0000000

利用python爬虫关键词批量下载高清大图

前言 在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的批量下载.虽然小图能够在一些移动端可能展示的还行,但是放到pc端展示图片太小效果真的是很一般!建议阅读本文查看上一篇文章,在具体实现不做太多介绍,只讲个分析思路. 当然,本文可能技术要求不是特别高,但可以当作一个下图工具使用. 环境:python3+pycharm+requests+re+BeatifulSoup+json 在这里插入图片描述这个确实也属实有一

Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记

涉及关键词:requests库 requests.post方法 cookies登陆 一.目的分析 利用cookie登陆豆瓣,并写一篇日记 https://www.douban.com/note/636142594/ 二.步骤分析 1.使用浏览器登陆豆瓣,得到并分析cookie 2.使用cookie模拟登陆豆瓣(使用账号密码登陆也可以,需要验证码,cookie的时效一般就几天) 3.分析浏览器写日记行为,在python中模拟post行为 4.源码及测试 三.scrapy shell 模拟登陆 1.

Python爬虫从入门到进阶(1)之Python概述

1.计算机语言概述 (1).语言:交流的工具,沟通的媒介 (2).计算机语言:人跟计算机交流的工具 (3).Python是计算机语言的一种 2.Python编程语言 代码:人类的语言,同代码命令机器,跟机器交(2).python解释器:担任翻译工作(3)流程: 写代码 --> 执行:由翻译官(Python解释器)把命令(Code)翻译给机器,同时把机器结果翻译给我们 3.Python简史 (1).1989 (2).2008:Python 3.0 诞生 (3)2014:宣布2.7支持到2020年

在python获取网页的代码中添加头信息模拟浏览器

为什么要添加头部信息,因为有时候有些网页会有反爬虫的设置,导致无法获取正常的网页,在这里,在代码的头部添加一个headers信息,模拟成浏览器去访问网页. 没有添加头部信息的代码 import urllib2 url = "http://blog.51cto.com/lsfandlinux/2046467" file = urllib2.urlopen(url) html = file.read() print html 接下来添加头部信息,首先在浏览器打开百度一下,然后检查网页的头部

Python 爬虫 Vimeo视频下载链接

python vimeo_d.py https://vimeo.com/228013581 在https://vimeo.com/上看到稀罕的视频 按照上面加上视频的观看地址运行即可获得视频下载链接 (为了凑够150字+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++) 1 #coding:utf-8 2 #sample url = 'https://vimeo.com/228013581' 3 4 5 import reque

python爬虫——中华网图片库下载

# -*- coding: utf-8 -*- import requests import re import sys reload(sys) sys.setdefaultencoding('utf-8') if __name__ == '__main__': url = 'http://photostock.china.com.cn/Web_CHN/SpecialTopicPhoto.aspx?Id=296' html = requests.get(url) img_src = re.fin

Python自然语言处理实战核心技术与算法,Python自然语言处理,PyTorch深度学习实战【下载】

本人买的,无私贡献给大家,无解压密码 下载地址: 链接:https://pan.baidu.com/s/1cJtnhEQSXHVMgygr8PHh9A 提取码:a54u 原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11384607.html

Python 爬虫 CSDN 网页下载

import reimport urllib.requestimport urllib.errorurl="http://blog.csdn.net"header=("User-Agent",'User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')opn=urllib.reque