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系列之教你如何根据图片生成字符画
May 23 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
安装Python的教程-Windows
Jul 22 Python
Python输出带颜色的字符串实例
Oct 10 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
Python 实现王者荣耀中的敏感词过滤示例
Jan 21 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
Python变量访问权限控制详解
Jun 29 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
Python openpyxl读取单元格字体颜色过程解析
Sep 03 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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 spl_autoload_register实现自动加载研究
2011/12/06 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
php防止用户重复提交表单
2015/11/02 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
python中正则表达式 re.findall 用法
2018/10/23 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
应届生服装设计自我评价
2013/09/20 职场文书
创业计划书如何编写
2014/02/06 职场文书
总经理任命书范本
2014/06/05 职场文书
档案工作汇报材料
2014/08/21 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers