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 sqlobject(mysql)中文乱码解决方法
Nov 14 Python
Python中用Decorator来简化元编程的教程
Apr 13 Python
Python 实现随机数详解及实例代码
Apr 15 Python
Python 基础教程之str和repr的详解
Aug 20 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
详解Python time库的使用
Oct 10 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
Django跨域请求原理及实现代码
Nov 14 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
python爬取微博评论的实例讲解
Jan 15 Python
python调试工具Birdseye的使用教程
May 25 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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延迟静态绑定示例分享
2014/06/22 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
Python中tell()方法的使用详解
2015/05/24 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
事业单位请假制度
2014/01/13 职场文书
高中生物教学反思
2014/02/05 职场文书
优秀学生获奖感言
2014/02/15 职场文书
党建示范点实施方案
2014/03/12 职场文书
副董事长岗位职责
2014/04/02 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
Go中的条件语句Switch示例详解
2021/08/23 Golang
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技