python登录并爬取淘宝信息代码示例


Posted in Python onDecember 09, 2017

本文主要分享关于python登录并爬取淘宝信息的相关代码,还是挺不错的,大家可以了解下。

#!/usr/bin/env python 
# -*- coding:utf-8 -*- 
from selenium import webdriver 
import time 
import datetime 
import traceback 
import logging 
import os 
from selenium.webdriver.common.action_chains import ActionChains 
import codecs 
#登录 
def login(driver,site): 
 driver.get(site) 
 time.sleep(5) 
 try: 
  #点击请登录 
  driver.find_element_by_class_name("h").click() 
  time.sleep(5) 
  #输入账号和密码 
  driver.find_element_by_id("TPL_username_1").send_keys(u"yourusername") 
  time.sleep(5) 
  #print driver.find_element_by_id("TPL_username_1") 
  driver.find_element_by_id("TPL_password_1").send_keys(u"yourpsd") 
  time.sleep(5) 
 
  #点击登录 
  driver.find_element_by_id("J_SubmitStatic").click() 
  time.sleep(30) 
 except: 
  print u"failure" 
def crawlmarket(driver,filename,site): 
 #driver = webdriver.Firefox() 
 driver.get(site) 
 driver.maximize_window() 
 time.sleep(10) 
 driver.refresh() 
 time.sleep(10) 
 test = driver.find_elements_by_xpath("//a[@class='J_ItemLink']") 
 #是否获取到消息,若无则登录 
 if len(test)==0: 
  login(driver,site) 
 time.sleep(30) 
 resultstrall="" 
 resultstr="" 
 strinfo ="" 
 for i in range(0,len(test),1): 
  if test[i].text != "" : 
   resultstr = test[i].text.strip()+'\n' 
   print resultstr 
   resultstrall += resultstr 
 #是否成功抓取 
 if resultstrall !="": 
  f = codecs.open(filename,'w','utf-8') 
  f.write(resultstrall) 
  f.close() 
 #若没有成功抓取将网站写入error 
 else: 
  strinfo = filename+","+site 
  print strinfo 
  ferror = codecs.open("error.txt",'a','utf-8') 
  ferror.write(strinfo) 
  ferror.close() 
 driver.quit() 

def crawltaobaosousuo(driver,filename,site): 
 #driver = webdriver.Firefox() 
 driver.get(site) 
 driver.maximize_window() 
 time.sleep(10) 
 driver.get(site) 
 time.sleep(30) 
 driver.refresh() 
 test = driver.find_elements_by_xpath("//a[@class='J_ClickStat']") 
 resultstrall="" 
 resultstr="" 
 strinfo ="" 
 for i in range(0,len(test),1): 
  if test[i].text != "" : 
   resultstr = test[i].text.strip()+'\n' 
   print resultstr 
   resultstrall += resultstr 
 if resultstrall !="": 
  f = codecs.open(filename,'w','utf-8') 
  f.write(resultstrall) 
  f.close() 
 else: 
  strinfo = filename+","+site 
  print strinfo 
  ferror = codecs.open("error.txt",'a','utf-8') 
  ferror.write(strinfo) 
  ferror.close() 
 driver.quit() 
def jiexi(driver): 
 f = open("1.txt","r") 
 for line in f: 
  time.sleep(60) 
  info = line.split(",") 
  href = info[1] 
  filename = info[0].decode("utf-8") 
  print filename 
  if "markets" in href: 
   crawlmarket(driver,filename,href) 
  else: 
   crawltaobaosousuo(driver,filename,href) 
if __name__ =='__main__': 
 driver = webdriver.Firefox() 
 jiexi(driver)

小结

有改进策略一起探讨,可以抓取淘宝部分网页内容,根据自己的需求改改吧,会被风控。个人觉得不登录的效果更好。

以上就是本文关于python 登录并爬取淘宝信息代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python科学计算环境推荐——Anaconda
Jun 30 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
基于python实现操作redis及消息队列
Aug 27 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
pycharm 代码自动补全的实现方法(图文)
Sep 18 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 #Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 #Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 #Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 #Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 #Python
python爬取亚马逊书籍信息代码分享
Dec 09 #Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 #Python
You might like
thinkphp特殊标签用法概述
2014/11/24 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
JS查看对象功能代码
2008/04/25 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
从Python的源码来解析Python下的freeblock
2015/05/11 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
python为什么会环境变量设置不成功
2020/06/23 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
清洁工表扬信
2014/01/08 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
2014年安全员工作总结
2014/11/13 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
导游词之江南周庄
2019/12/06 职场文书