python爬虫爬天猫视频_使用selenium爬取天猫数据.py

from selenium import webdriver

from selenium.common.exceptions import TimeoutException

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.wait import WebDriverWait

from urllib.parse import quote

from pyquery import PyQuery as pq

broser=webdriver.Chrome()

wait=WebDriverWait(broser,10)

try:

a=input('请输入你要查找的商品:')

url='https://list.tmall.com/search_product.htm?q='+quote(a)

broser.get(url)

html=broser.page_source

doc=pq(html)

items=doc('.product-iWrap').items()

for i in items:

#print('i是:',i)

pro={

'店铺名':i.find('.productShop-name').text(),

'成交量':i.find('.productStatus').text(),

#'图片地址:':i.find('.productImg-wrap img').attr('src'),

'图片地址':i.attr('src'),

'内容':i.find('.productTitle a').text(),

'价格:':i.find('.productPrice').text()

}

print(pro)

except TimeoutException:

print('出错了')

finally:

broser.close()

一键复制

编辑

Web IDE

原始数据

按行查看

历史

好的,这是一个比较常见的需求,需要用到 Scrapy 框架和 Selenium 库。 首先,需要在 Scrapy 中创建一个 Spider,并设置起始 URL 为当当网的搜索页面(http://search.dangdang.com/?key=python&act=input)。 然后,需要在 Spider 中使用 Selenium 库模拟用户在搜索框中输入关键词,并点击搜索按钮,以便加载出搜索结果页面。 接下来,我们需要在 Scrapy 的 Item 中定义图书的相关属性,例如书名、作者、出版社、价格等。 然后,在 Spider 中通过 XPath 或 CSS Selector 解析搜索结果页面,提取出每本图书的相关信息,同时使用 Scrapy 的 Item Pipeline 将数据保存到本地或者数据库中。 最后,我们可以使用 Scrapy 的自带命令启动 Spider,开始爬取数据。 当然,具体实现还需要考虑很多细节问题,例如如何处理页面的异步加载、如何使用代理IP等等。 下面是使用 Scrapy 框架和 Selenium爬取当当网搜索结果的具体代码: 首先,在终端中使用以下命令创建一个新的 Scrapy 项目: ```bash scrapy startproject dangdang cd dangdang ``` 然后,在项目根目录下创建一个名为 `spiders` 的文件夹,用于存放 Spider。 接下来,在 `spiders` 文件夹下创建一个名为 `dangdang_spider.py` 的文件,用于编写 Spider 的代码。 首先,在文件头部导入必要的库: ```python import scrapy from selenium import webdriver from scrapy.selector import Selector from dangdang.items import DangdangItem from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ``` 其中,`scrapy` 用于创建 Spider,`webdriver` 用于模拟用户操作,`Selector` 用于解析 HTML 页面,`DangdangItem` 用于定义数据结构。 然后,在 `DangdangSpider` 类中定义必要的属性和方法: ```python class DangdangSpider(scrapy.Spider): name = 'dangdang' allowed_domains = ['dangdang.com'] start_urls = ['http://search.dangdang.com/?key=python&act=input'] def __init__(self): self.driver = webdriver.Chrome() def parse(self, response): self.driver.get(response.url) wait = WebDriverWait(self.driver, 10) wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".m-list .line1 .pic"))) sel = Selector(text=self.driver.page_source) items = [] for book in sel.css(".m-list .line1"): item = DangdangItem() item["name"] = book.css(".name a::attr(title)").extract_first() item["author"] = book.css(".search_book_author span:nth-child(1)::text").extract_first() item["publisher"] = book.css(".search_book_author span:nth-child(3)::text").extract_first() item["price"] = book.css(".price .search_now_price::text").extract_first() items.append(item) return items def closed(self, reason): self.driver.quit() ``` 其中,`name` 属性为 Spider 的名字,`allowed_domains` 属性为允许爬取的域名,`start_urls` 属性为起始 URL。 在构造函数中,我们创建了一个 Chrome 浏览器实例,用于模拟用户操作。在 `parse` 方法中,我们通过 `driver.get` 方法打开搜索页面,然后使用 `WebDriverWait` 等待页面加载完成,使用 `Selector` 解析页面内容,并提取出每本图书的相关信息,存储到 `DangdangItem` 中,并返回列表。 最后,在 `closed` 方法中,我们关闭 Chrome 浏览器实例,释放资源。 接下来,在项目根目录下创建一个名为 `items.py` 的文件,用于定义数据结构: ```python import scrapy class DangdangItem(scrapy.Item): name = scrapy.Field() author = scrapy.Field() publisher = scrapy.Field() price = scrapy.Field() ``` 在 `DangdangItem` 类中,我们定义了图书的四个属性,分别对应书名、作者、出版社、价格。 最后,在终端中使用以下命令启动 Spider: ```bash scrapy crawl dangdang ``` 这样就可以开始爬取当当网搜索结果的数据了。 当然,为了使 Selenium 正常运行,我们还需要在系统中安装 Chrome 浏览器和 ChromeDriver,并将 ChromeDriver 的路径加入系统环境变量中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值