调用火狐浏览器模拟天猫搜索并遍历一百页商品(速度较慢,但不会遇到反爬机制和验证码)
来源:互联网 发布:js计算时间差 编辑:程序博客网 时间:2024/05/17 22:49
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import hashlib
import random
import urllib
from time import ctime,sleep
class ScrapyPages:
productLinks = []
#待处理的链接
nextLinks = []
#打开浏览器驱动,默认为火狐
def openPage(self, url):
driver = webdriver.Firefox()
driver.get(url)
return driver
#处理页面中的a标签:
#1、将a标签存入相应的文件中
#2、将其更新如links中
def productHref(self, anchors):
hrefs = []
for anchor in anchors:
try:
href = anchor.get_attribute('href').encode('utf-8')
if href in hrefs:
continue
else:
if href.find('//detail.tmall.com/item.htm?')!=-1:
print href
hrefs += [href]
except AttributeError:
pass
except selenium.common.exceptions.StaleElementReferenceException:
pass
print len(hrefs)
return hrefs
def nextHref(self, anchors):
hrefs = []
for anchor in anchors:
try:
href = anchor.get_attribute("href").encode('utf-8')
print href
hrefs += [href]
except AttributeError:
pass
except selenium.common.exceptions.StaleElementReferenceException:
pass
return hrefs
#爬取网页的入口函数
def scrapy(self, initURL):
self.nextLinks += [initURL]
while len(self.nextLinks) != 0:
pos=len(self.nextLinks) - 1
link=self.nextLinks[pos]
del self.nextLinks[pos]
driver = self.openPage(link)
atag1 = driver.find_elements_by_tag_name("a")
atag2= driver.find_elements_by_class_name("ui-page-next")
self.productLinks=self.productHref( atag1)
self.nextLinks=self.nextHref(atag2)
driver.quit()
print 'ok %s',ctime()
if __name__ == '__main__':
url1='http://list.tmall.com/search_product.htm?'
key=raw_input('please input key')
key=key.decode('utf-8').encode('gbk')
key =urllib.quote(key )
url3=url1+'q='+key+'&sort=s&style=g&from=mallfp..pc_1_searchbutton&type=pc#J_Filter'
pageScrapy = ScrapyPages()
pageScrapy.scrapy(url3)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import hashlib
import random
import urllib
from time import ctime,sleep
class ScrapyPages:
productLinks = []
#待处理的链接
nextLinks = []
#打开浏览器驱动,默认为火狐
def openPage(self, url):
driver = webdriver.Firefox()
driver.get(url)
return driver
#处理页面中的a标签:
#1、将a标签存入相应的文件中
#2、将其更新如links中
def productHref(self, anchors):
hrefs = []
for anchor in anchors:
try:
href = anchor.get_attribute('href').encode('utf-8')
if href in hrefs:
continue
else:
if href.find('//detail.tmall.com/item.htm?')!=-1:
print href
hrefs += [href]
except AttributeError:
pass
except selenium.common.exceptions.StaleElementReferenceException:
pass
print len(hrefs)
return hrefs
def nextHref(self, anchors):
hrefs = []
for anchor in anchors:
try:
href = anchor.get_attribute("href").encode('utf-8')
print href
hrefs += [href]
except AttributeError:
pass
except selenium.common.exceptions.StaleElementReferenceException:
pass
return hrefs
#爬取网页的入口函数
def scrapy(self, initURL):
self.nextLinks += [initURL]
while len(self.nextLinks) != 0:
pos=len(self.nextLinks) - 1
link=self.nextLinks[pos]
del self.nextLinks[pos]
driver = self.openPage(link)
atag1 = driver.find_elements_by_tag_name("a")
atag2= driver.find_elements_by_class_name("ui-page-next")
self.productLinks=self.productHref( atag1)
self.nextLinks=self.nextHref(atag2)
driver.quit()
print 'ok %s',ctime()
if __name__ == '__main__':
url1='http://list.tmall.com/search_product.htm?'
key=raw_input('please input key')
key=key.decode('utf-8').encode('gbk')
key =urllib.quote(key )
url3=url1+'q='+key+'&sort=s&style=g&from=mallfp..pc_1_searchbutton&type=pc#J_Filter'
pageScrapy = ScrapyPages()
pageScrapy.scrapy(url3)
0 0
- 调用火狐浏览器模拟天猫搜索并遍历一百页商品(速度较慢,但不会遇到反爬机制和验证码)
- 简单的模拟天猫搜索 并遍历一百页商品(会遇到反爬机制)
- 模拟天猫搜索,并遍历一百页商品代码(会遇到反爬链)
- CSDN的博客访问速度较慢
- selenium调用火狐浏览器
- 火狐启动速度慢的问题
- 模仿新浪微博“@”好友搜索功能(支持IE和火狐浏览器)-(咋个办呢 zgbn)
- 商品SKU属性添加、上传图片、生成列表并生成json传给后台(支持IE8、谷歌、火狐等主流浏览器)
- csdn资源多,但速度太慢
- 使用Opencv的dnn模块进行深度学习人脸识别(速度较慢)
- 火狐浏览器启动慢?--几点办法
- 基于火狐和谷歌浏览器的html5调用摄像头
- 火狐浏览器模拟微信浏览器教程
- 提高火狐浏览器的启动速度
- 怎样提高火狐浏览器的速度?
- 加快火狐浏览器开启速度方法小结
- JAVA 学习开始纪念(虽然学的慢,事情多,但我不会放弃的)
- 连接不上数据库时返回速度较慢
- 3D塔防游戏实现 4.1 怪物3D空间自动移动(Feekood语言)
- python第三方库系列之十五--编码库
- 《Python核心编程》笔记 Python对象
- matlab把数据从胞元类型(cell)转换为矩阵类型(matrix)
- 生成条形码
- 调用火狐浏览器模拟天猫搜索并遍历一百页商品(速度较慢,但不会遇到反爬机制和验证码)
- Mysql联合查询UNION和UNION ALL的使用介绍
- VirtualBox错误 Unable to load R3 module 解决方案
- 由两种简单的遍历指定目录下文件的方法来看os模块中的一些方法
- 寒假14项目3——应用枚举
- IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
- cocosdx让AppDelegate支持全局更新机制
- Ubuntu笔记--文件关联软件
- iOS——加载进度示的SVProgressHUD 用法