解决方案:百度简易模式采集介绍
优采云 发布时间: 2022-11-07 23:52解决方案:百度简易模式采集介绍
对于一些用户来说,可能很难直接自定义规则,在这种情况下,我们的 7.x 版本提供了网页的简单模式,以网页的简单模式存储了一些国内主流的网站采集规则,需要采集相关网站时可以直接调用,节省了制定规则的时间和精力。
首先,对于当前 6.x 版本的用户,如果需要使用网页的简单模式,则需要下载 7.x 版本,
打开官方优采云,然后点击软件下载界面,如果已经是7.x版本,可以省略这一步。
进入软件下载页面后,可以看到v7.x版本按钮,点击此按钮下载7.x版本再安装。
安装后,打开软件,输入用户名和密码优采云然后单击登录
进入登录界面后,可以在首页看到网站简单的采集,选择立即使用。
进入后,可以看到当前Web简单模式内置的所有主流网站
如需采集以下百度数据,请参考以下内容查看具体操作方法
一、采集百度关键词搜索内容
2. 采集百度地图坐标内容
三、*敏*感*词*快速采集
四、*敏*感*词*深度采集
五、采集百度知道内容
6. 采集百度百科内容
7. 采集百度库列表页面信息
8. 采集百度文库详情页的信息
汇总:Python采集商品数据,实时了解商品价格【冲刺双十一高峰期】
前言
双十一还没有结束。虽然是某D的场景期,但是发布这个文章也不算晚。可以冲刺10号的高峰期~
亲爱的朋友们,尤其是正在学习Python的直男们,看完这篇文章,准备给小伙伴买个新年礼物了,哈哈(也可以说是新年礼物),当然也可以自己买,自己投资,很不错
没有目标就赶紧找吧,不过留着这个文章就好了
废话不多说,开始吧
准备安装驱动程序
在实现案例之前,我们需要安装一个谷歌驱动,因为我们使用selenium来控制谷歌驱动,然后控制浏览器实现自动操作,模拟人类行为来操作浏览器。
以谷歌浏览器为例,打开浏览器看到我们自己的版本,然后下载与你的浏览器版本相同或最相似的版本,下载后解压,将解压后的插件放到我们的python环境中,或者你可以也把它和代码放在一起。
模块使用及介绍流程分析
我们访问一个网站并输入一个URL,所以代码是这样写的。
导入模块
点击获取源代码
from selenium import webdriver
不要将文件名或包名命名为selenium,否则会导致导入失败。
Webdriver可以被认为是浏览器的驱动程序。要驱动浏览器,必须使用支持多种浏览器的webdriver。
实例化浏览器对象,我这里用的是google,建议大家用google,比较方便。
driver = webdriver.Chrome()
打开网址
我们使用 get 访问一个 URL,它会自动打开该 URL。
driver.get('https://***com/')
运行
打开网站后,以购买口红为例。
我们首先需要通过您要购买的产品的关键字搜索产品信息,并利用搜索结果获取信息。
然后我们还要写一个输入,在空白处右击选择Check。
选择元素元素面板
用鼠标单击左侧的箭头按钮以单击搜索框,它将直接导航到搜索选项卡。
右键单击标签,选择复制,选择复制选择器。
如果你是 xpath,复制它的 xpath。
然后写下我们要搜索的内容
driver.find_element_by_css_selector('#key').send_keys('口红')
再次运行时会自动打开浏览器,输入目标网址搜索口红。
同样的方法,找到搜索按钮并点击它。
driver.find_element_by_css_selector('.button').click()
再次运行它,它会自动点击搜索。
页面被搜索到了,那么我们在正常浏览网页的时候需要把页面拉下来,对了,我们让它自动拉下来吧。
先导入时间模块
import time
执行页面滚动操作
python学习交流Q群:309488165 ### 源码领取
def drop_down():
"""执行页面滚动的操作""" # javascript
for x in range(1, 12, 2): # for循环下拉次数,取1 3 5 7 9 11, 在你不断的下拉过程中, 页面高度也会变的;
time.sleep(1)
j = x / 9 # 1/9 3/9 5/9 9/9
# document.documentElement.scrollTop 指定滚动条的位置
# document.documentElement.scrollHeight 获取浏览器页面的最大高度
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
driver.execute_script(js) # 执行我们JS代码
循环被编写,然后被调用。
drop_down()
让我们再推迟一次
driver.implicitly_wait(10)
这是一个隐式等待,等待网页延迟,如果网络不好加载会很慢。
隐式等待不必等待十秒钟。您的网络在十秒内加载完毕后,随时会被加载。如果十秒后没有加载,就会强制加载。
还有另一种死亡等待。你写完后要等几秒,这样比较不人性化。
time.sleep(10)
加载完数据后,我们需要找到商品数据的来源
价格/标题/评论/封面/商店等。
或者右键查看,在element中,点击小箭头,点击要查看的数据。
获取所有的li标签内容,还是一样的,直接复制。
在左下角
这是第一个要取的,但是我们要获取所有的标签,所以左边框中li之后的可以删除。
如果没有,可以看到这里有60条商品数据,每页60条。
所以我们复制其余的并用 lis 接收它。
lis = driver.find_elements_by_css_selector('#J_goodsList ul li')
因为我们获取的是所有的label数据,所以比之前多了一个s
打印它
print(lis)
通过lis返回数据列表[]列表中的元素对象
迭代并取出所有元素。
for li in lis:
title = li.find_element_by_css_selector('.p-name em').text.replace('\n', '') # 商品标题 获取标签文本数据
price = li.find_element_by_css_selector('.p-price strong i').text # 价格
commit = li.find_element_by_css_selector('.p-commit strong a').text # 评论量
shop_name = li.find_element_by_css_selector('.J_im_icon a').text # 店铺名字
href = li.find_element_by_css_selector('.p-img a').get_attribute('href') # 商品详情页
icons = li.find_elements_by_css_selector('.p-icons i')
<p>
icon = ','.join([i.text for i in icons]) # 列表推导式 ','.join 以逗号把列表中的元素拼接成一个字符串数据
dit = {
'商品标题': title,
'商品价格': price,
'评论量': commit,
'店铺名字': shop_name,
'标签': icon,
'商品详情页': href,
}
csv_writer.writerow(dit)
print(title, price, commit, href, icon, sep=' | ')
</p>
搜索功能
key_world = input('请输入你想要获取商品数据: ')
待采集的数据,采集后保存为CSV
python学习交流Q群:309488165 ### 源码领取
f = open(f'某东{key_world}商品数据.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'商品标题',
'商品价格',
'评论量',
'店铺名字',
'标签',
'商品详情页',
])
csv_writer.writeheader()
然后写一个自动翻页
for page in range(1, 11):
print(f'正在爬取第{page}页的数据内容')
time.sleep(1)
drop_down()
get_shop_info() # 下载数据
driver.find_element_by_css_selector('.pn-next').click() # 点击下一页
完整代码
点击获取源代码
显示结果
视频教程
文章后面写的就不那么详细了
但是有视频教程
有需要的朋友可以向我求视频
今天的文章到此结束
如果有关于文章的问题,或者还有其他关于python的问题,可以在评论区留言或者私信我
如果觉得我分享的文章不错,可以关注我,或者给个赞文章(/≧▽≦)/