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 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
浅谈Python程序与C++程序的联合使用
Apr 07 Python
Python中转换角度为弧度的radians()方法
May 18 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
keras 权重保存和权重载入方式
May 21 Python
python如何写try语句
Jul 14 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
python re模块和正则表达式
Mar 24 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 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
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
vue中的inject学习教程
2019/04/24 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
Python 类的继承实例详解
2017/03/25 Python
python 全文检索引擎详解
2017/04/25 Python
Python编写一个闹钟功能
2017/07/11 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
机械制造专业个人的自我评价
2013/12/28 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
护士实习自荐信
2015/03/06 职场文书
开会通知
2015/04/20 职场文书
公司董事任命书
2015/09/21 职场文书