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使用MONGODB入门实例
May 11 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
python字典DICT类型合并详解
Aug 17 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
Jun 13 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
Mar 14 Python
Python qqbot 实现qq机器人的示例代码
Jul 11 Python
Python socket 套接字实现通信详解
Aug 27 Python
使用Python脚本从文件读取数据代码实例
Jan 19 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 Python
python 基于opencv去除图片阴影
Jan 26 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 CURL获取cookies模拟登录的方法
2013/11/04 PHP
10个简化PHP开发的工具
2014/12/25 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python threading多线程编程实例
2014/09/18 Python
Python装饰器的函数式编程详解
2015/02/27 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
numpy返回array中元素的index方法
2018/06/27 Python
pytorch 预训练层的使用方法
2019/08/20 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
python实现简单文件读写函数
2021/02/25 Python
物流专业大学生的自我鉴定
2013/11/13 职场文书
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
2014年林业工作总结
2014/12/05 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书