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 07 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
Python内置函数OCT详解
Nov 09 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
python3.6的venv模块使用详解
Aug 01 Python
python中partial()基础用法说明
Dec 30 Python
Python中请不要再用re.compile了
Jun 30 Python
Django模板Templates使用方法详解
Jul 19 Python
python爬虫增加访问量的方法
Aug 22 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
Python turtle编写简单的球类小游戏
Mar 31 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的declare控制符和ticks教程(附示例)
2014/03/21 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
php算法实例分享
2015/07/14 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
Python用for循环实现九九乘法表
2018/05/31 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
实习医生自我评价
2013/09/22 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
本科应届生求职信
2014/08/05 职场文书
应聘教师求职信范文
2015/03/20 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
新店开张宣传语
2015/07/13 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技