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代码(逐级优化)
May 25 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
python实现对任意大小图片均匀切割的示例
Dec 05 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
pycharm 关掉syntax检查操作
Jun 09 Python
python在一个范围内取随机数的简单实例
Aug 16 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
德劲1107的电路分析与打磨
2021/03/02 无线电
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
新闻内页-JS分页
2006/06/07 Javascript
use jscript List Installed Software
2007/06/11 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
js图片预加载示例
2014/04/30 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
RIP版本1跟版本2的区别
2013/12/30 面试题
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
诚实守信主题班会
2015/08/13 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
Redis高可用集群redis-cluster详解
2022/03/20 Redis
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫