解决方案:百度简易模式采集介绍

优采云 发布时间: 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 = &#39;,&#39;.join([i.text for i in icons]) # 列表推导式 &#39;,&#39;.join 以逗号把列表中的元素拼接成一个字符串数据

dit = {

&#39;商品标题&#39;: title,

&#39;商品价格&#39;: price,

&#39;评论量&#39;: commit,

&#39;店铺名字&#39;: shop_name,

&#39;标签&#39;: icon,

&#39;商品详情页&#39;: href,

}

csv_writer.writerow(dit)

print(title, price, commit, href, icon, sep=&#39; | &#39;)

</p>

  搜索功能

  key_world = input(&#39;请输入你想要获取商品数据: &#39;)

  待采集的数据,采集后保存为CSV

  python学习交流Q群:309488165 ### 源码领取

f = open(f&#39;某东{key_world}商品数据.csv&#39;, mode=&#39;a&#39;, encoding=&#39;utf-8&#39;, newline=&#39;&#39;)

csv_writer = csv.DictWriter(f, fieldnames=[

&#39;商品标题&#39;,

&#39;商品价格&#39;,

&#39;评论量&#39;,

&#39;店铺名字&#39;,

&#39;标签&#39;,

&#39;商品详情页&#39;,

])

csv_writer.writeheader()

  然后写一个自动翻页

  for page in range(1, 11):

print(f&#39;正在爬取第{page}页的数据内容&#39;)

time.sleep(1)

drop_down()

get_shop_info() # 下载数据

driver.find_element_by_css_selector(&#39;.pn-next&#39;).click() # 点击下一页

  完整代码

  点击获取源代码

  显示结果

  视频教程

  文章后面写的就不那么详细了

  但是有视频教程

  有需要的朋友可以向我求视频

  今天的文章到此结束

  如果有关于文章的问题,或者还有其他关于python的问题,可以在评论区留言或者私信我

  如果觉得我分享的文章不错,可以关注我,或者给个赞文章(/≧▽≦)/

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线