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的ORM框架SQLObject入门实例
Apr 28 Python
Python定义二叉树及4种遍历方法实例详解
Jul 05 Python
python 遍历pd.Series的index和value
Nov 26 Python
TensorFlow实现保存训练模型为pd文件并恢复
Feb 06 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
Django 删除upload_to文件的步骤
Mar 30 Python
如何在mac下配置python虚拟环境
Jul 06 Python
Python把图片转化为pdf代码实例
Jul 28 Python
python解压zip包中文乱码解决方法
Nov 27 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 Python
python批量创建变量并赋值操作
Jun 03 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
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
详解vue 组件注册
2020/11/20 Vue.js
Python使用multiprocessing创建进程的方法
2015/06/04 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
Python 代码调试技巧示例代码
2020/08/11 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
自荐信结尾
2013/10/27 职场文书
《云房子》教学反思
2014/04/20 职场文书
优秀护士演讲稿
2014/04/30 职场文书
公司禁烟通知
2015/04/23 职场文书
技能培训通讯稿
2015/07/18 职场文书
初一语文教学反思
2016/03/03 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
深入浅析Django MTV模式
2021/09/04 Python