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格式化压缩后的JS文件的方法
Mar 05 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Pytorch 实现权重初始化
Dec 31 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
关于tf.reverse_sequence()简述
Jan 20 Python
flask框架url与重定向操作实例详解
Jan 25 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
大数据分析用java还是Python
Jul 06 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
PHP中的日期及时间
2006/11/23 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
php桥接模式应用案例分析
2019/10/23 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
javascript表单验证大全
2015/08/12 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
Python操作SQLite简明教程
2014/07/10 Python
python写日志封装类实例
2015/06/28 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
Python while true实现爬虫定时任务
2020/06/08 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
什么是TCP/IP
2014/07/27 面试题
促销活动总结范文
2014/04/30 职场文书
天地会口号
2014/06/17 职场文书
保险公司开门红口号
2014/06/21 职场文书
单位工作证明
2014/10/07 职场文书
大学生党员自我评价
2015/03/04 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
零基础学java之循环语句的使用
2022/04/10 Java/Android