❶ 使用python爬虫下载图片,得到的图片不显示
你需要检查一下你的结果,看看是否请求成功了。可能服务器返回的并不是一个图片,但是你强制给他写入到图片格式文件中了,所以没办法显示。
你可以通过输出response或者使用抓包软件来检查。
❷ Python使用自定义的cookie和header抓取下载网页图片
#-*-coding:UTF-8-*-
importrequests
__author__='lpe234'
defmain():
url=''
cookies={
'login':'yes',
'cookie2':'shdjd',
'cookie3':'gdhjej'
}
headers={
'content-type':'application/json',
'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_12_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/60.0.3112.113Safari/537.36'
}
resp=requests.get(url=url,cookies=cookies,headers=headers)
printresp.content
if__name__=='__main__':
main()
❸ python爬虫使用Cookie如何进行
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密),比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了,那么python爬虫使用Cookie如何进行?
❹ 用python代码下载京东订单清单存到xlsx文件或者csv文件
你的订单量有多少,如果不是上千上万那种的话可以手动把所有订单页面下载下来,后再用python去处理,这样可行性及工作量比你直接模拟登录再做一堆操作来得快,而且爬京东这样的大公司网站要是被检测出来,警告还好,要是账号被封那就不值得了。
我自己下载好的html源码
❺ 怎么使用python来爬取网页上的表格信息
稍微说一下背景,当时我想研究蛋白质与小分子的复合物在空间三维结构上的一些规律,首先得有数据啊,数据从哪里来?就是从一个涵盖所有已经解析三维结构的蛋白质-小分子复合物的数据库里面下载。这时候,手动一个个去下显然是不可取的,我们需要写个脚本,能从特定的网站选择性得批量下载需要的信息。python是不错的选择。
import urllib #python中用于获取网站的模块
import urllib2, cookielib
有些网站访问时需要cookie的,python处理cookie代码如下:
cj = cookielib.CookieJar ( )
opener = urllib2.build_opener( urllib2.HttpCookieProcessor(cj) )
urllib2.install_opener (opener)
通常我们需要在网站中搜索得到我们需要的信息,这里分为二种情况:
1. 第一种,直接改变网址就可以得到你想要搜索的页面:
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx.cgi?&' + ‘你想要搜索的参数’ # 结合自己页面情况适当修改
page = urllib2.urlopen(url)
pageContent = page.read( )
return pageContent #返回的是HTML格式的页面信息
2.第二种,你需要用到post方法,将你搜索的内容放在postdata里面,然后返回你需要的页面
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx' #这个网址是你进入搜索界面的网址
postData = urllib.urlencode( { 各种‘post’参数输入 } ) #这里面的post参数输入需要自己去查
req= urllib2.Request (url, postData)
pageContent = urllib2.urlopen (req). read( )
return pageContent #返回的是HTML格式的页面信息
在获取了我们需要的网页信息之后,我们需要从获得的网页中进一步获取我们需要的信息,这里我推荐使用 BeautifulSoup 这个模块, python自带的没有,可以自行网络谷歌下载安装。 BeautifulSoup 翻译就是‘美味的汤’,你需要做的是从一锅汤里面找到你喜欢吃的东西。
import re # 正则表达式,用于匹配字符
from bs4 import BeautifulSoup # 导入BeautifulSoup 模块
soup = BeautifulSoup(pageContent) #pageContent就是上面我们搜索得到的页面
soup就是 HTML 中所有的标签(tag)BeautifulSoup处理格式化后的字符串,一个标准的tag形式为:
hwkobe24
通过一些过滤方法,我们可以从soup中获取我们需要的信息:
(1) find_all ( name , attrs , recursive , text , **kwargs)
这里面,我们通过添加对标签的约束来获取需要的标签列表, 比如 soup.find_all ('p') 就是寻找名字为‘p’的 标签,而soup.find_all (class = "tittle") 就是找到所有class属性为"tittle" 的标签,以及soup.find_all ( class = re.compile('lass')) 表示 class属性中包含‘lass’的所有标签,这里用到了正则表达式(可以自己学习一下,非常有用滴)
当我们获取了所有想要标签的列表之后,遍历这个列表,再获取标签中你需要的内容,通常我们需要标签中的文字部分,也就是网页中显示出来的文字,代码如下:
tagList = soup.find_all (class="tittle") #如果标签比较复杂,可以用多个过滤条件使过滤更加严格
for tag in tagList:
print tag.text
f.write ( str(tag.text) ) #将这些信息写入本地文件中以后使用
(2)find( name , attrs , recursive , text , **kwargs )
它与 find_all( ) 方法唯一的区别是 find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果
(3)find_parents( ) find_parent( )
find_all() 和 find() 只搜索当前节点的所有子节点,孙子节点等. find_parents() 和 find_parent() 用来搜索当前节点的父辈节点,搜索方法与普通tag的搜索方法相同,搜索文档搜索文档包含的内容
(4)find_next_siblings() find_next_sibling()
这2个方法通过 .next_siblings 属性对当 tag 的所有后面解析的兄弟 tag 节点进代, find_next_siblings() 方法返回所有符合条件的后面的兄弟节点,find_next_sibling() 只返回符合条件的后面的第一个tag节点
(5)find_previous_siblings() find_previous_sibling()
这2个方法通过 .previous_siblings 属性对当前 tag 的前面解析的兄弟 tag 节点进行迭代, find_previous_siblings()方法返回所有符合条件的前面的兄弟节点, find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点
(6)find_all_next() find_next()
这2个方法通过 .next_elements 属性对当前 tag 的之后的 tag 和字符串进行迭代, find_all_next() 方法返回所有符合条件的节点, find_next() 方法返回第一个符合条件的节点
(7)find_all_previous() 和 find_previous()
这2个方法通过 .previous_elements 属性对当前节点前面的 tag 和字符串进行迭代, find_all_previous() 方法返回所有符合条件的节点, find_previous()方法返回第一个符合条件的节点
具体的使用方法还有很多,用到这里你应该可以解决大部分问题了,如果要更深入了解可以参考官方的使用说明哈!
❻ python获取cookie后怎么模拟登陆网站
运行平台:Windows
Python版本:Python3.x
IDE:Sublime text3
一、为什么要使用Cookie
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容,登陆前与登陆后是不同的,或者不允许的。
使用Cookie和使用代理IP一样,也需要创建一个自己的opener。在HTTP包中,提供了cookiejar模块,用于提供对Cookie的支持。
三、总结
获取成功!如果看过之前的笔记内容,我想这些代码应该很好理解吧。
❼ python如何保存cookie到本地
python如何保存cookie到本地的方法:
第一次访问页面后,Server可将Cookie信息加入HTTP
Header返回给浏览器,浏览器会自动将这些信息保存在本地;
当再次访问相同域名时,浏览器将对应Cookie信息随请求一起发送,Server端可读取这些信息进行处理。
Cookie可设置过期时间,到期后由浏览器自动删除;
当我们要返回页面时,首先输出如下:
[python]
view
plain
print
"Content-type:
text/plain\n"
它其实是一个HTTP
Header,
连续碰到两个换行表示HTTP
Header部分结束,剩余部分将被做为数据处理;
包含了Cookie后输出大致如下:
[python]
view
plain
print
"Content-Type:
text/html"
print
"Set-Cookie:
session=12345"
print
#
多加一个换行表示HTTP
Header部分结束
代码:
setcookie.py
[python]
view
plain
#!/usr/bin/env
python
import
Cookie
import
datetime
import
random
expiration
=
datetime.datetime.now()
+
datetime.timedelta(days=30)
cookie
=
Cookie.SimpleCookie()
cookie["session"]
=
random.randint(0,1000000000)
cookie["session"]["domain"]
=
"localhost"
cookie["session"]["path"]
=
"/"
cookie["session"]["expires"]
=
\
expiration.strftime("%a,
%d-%b-%Y
%H:%M:%S
PST")
print
"Content-type:
text/plain"
print
cookie.output()
print
print
"Cookie
set
with:
"
+
cookie.output()
getcookie.py
[python]
view
plain
#!/usr/bin/env
python
import
Cookie
import
os
print
"Content-type:
text/plain\n"
try:
cookie
=
Cookie.SimpleCookie(os.environ["HTTP_COOKIE"])
print
"session
=
"
+
cookie["session"].value
except
(Cookie.CookieError,
KeyError):
print
"session
cookie
not
set!"
❽ 求教python,如何用python自动下载文件
可以使用requests模块完成下载
#--------------------第一种:使用headers携带cookie-----------------------------
#coding=utf-8
importrequests
headers={
'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64),
'Cookie':'你的cookies',
}
#发起请求,获取二进制数据
html_str=requests.get(url,headers=headers).content
#写入文件,采用二进制写入文件
withopen('路径/文件名.后缀','wb')asf:
f.write(html_str)
#--------------------第二种:在requests直接携带--------------------------------
#coding=utf-8
importrequests
headers={
'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64),
}
cookies={你的cookies,这里必须是以键值对,也就是字典的形式}
#发起请求,获取二进制数据
html_str=requests.get(url,headers=headers,cookies=cookies).content
#写入文件,采用二进制写入文件
withopen('路径/文件名.后缀','wb')asf:
f.write(html_str)
❾ 使用python怎么获取京东网站cookie进行登录
# -*- coding: utf-8 -*-
# !/usr/bin/python
import os
import urllib2
import urllib
import cookielib
import re
import sys
from bs4 import BeautifulSoup
‘‘‘
编码方式的设置,在中文使用时用到中文时的处理方式
‘‘‘
default_encoding = "utf-8"
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding("utf-8")
def getHtml(url,data={}):
if(data=={}):
req=urllib2.Request(url)
else:
req=urllib2.Request(url,urllib.urlencode(data))
html=urllib2.urlopen(req).read()
return html
try:
cookie = cookielib.CookieJar()
cookieProc = urllib2.HTTPCookieProcessor(cookie)
except:
raise
else:
opener = urllib2.build_opener(cookieProc)
opener.addheaders = [(‘User-Agent‘,‘Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11‘)]
urllib2.install_opener(opener)
auth_url=‘‘
#auth_url = ‘‘
home_url=‘‘
#home_url = ‘;
url = ""
login=getHtml(url)
#print login
loginSoup = BeautifulSoup(login,‘html.parser‘)
#查找登陆参数中的uuid
uuid = loginSoup.find_all("form")[0].find_all("input")[0][‘value‘]
print uuid
clrName=loginSoup.find_all("form")[0].find_all("input")[6][‘name‘]
clrValue=loginSoup.find_all("form")[0].find_all("input")[6][‘value‘]
‘‘‘这俩参数不是必须。。。。
eid=loginSoup.find_all("form")[0].find_all("input")[4][‘value‘]
fp=loginSoup.find_all("form")[0].find_all("input")[5][‘value‘]
‘‘‘
#下载验证码图片:
checkPicUrl = loginSoup.find_all("div",id="o-authcode")[0].find_all("img")[0][‘src2‘]
req = getHtml(checkPicUrl)
checkPic = open("checkPic.jpg","w")
checkPic.write(req)
checkPic.close()
#调用mac系统的预览(图像查看器)来打开图片文件
os.system(‘open /Applications/Preview.app/ checkPic.jpg‘)
checkCode = raw_input("请输入弹出图片中的验证码:")
#登录URL
url = ""
# 登陆用户名和密码
postData = {
‘loginname‘:‘你自己的账号‘,
‘nloginpwd‘:‘你自己的密码‘,
‘loginpwd‘:‘你自己的密码‘,
# ‘machineNet‘:‘‘,
# ‘machineCpu‘:‘‘,
# ‘machineDisk‘:‘‘,
str(clrName):str(clrValue),
‘uuid‘:uuid,
‘authcode‘: checkCode
}
passport=getHtml(url,postData)
print passport
# 初始化一个CookieJar来处理Cookie
‘‘‘
cookieJar=cookielib.CookieJar()
# 实例化一个全局opener
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
# 获取cookie
req=urllib2.Request(auth_url,post_data,headers)
result = opener.open(req)
# 访问主页 自动带着cookie信息
‘‘‘
result = opener.open(‘‘)
# 显示结果
#print result.read()
soup=BeautifulSoup(result,‘html.parser‘)
#昵称
nickName = soup.find_all("input", id="nickName")[0]["value"]
print "nickName:",
print nickName