抓取网页数据违法吗(1.请正确使用网页爬虫非法数据影响他人服务器的正常工作)

优采云 发布时间: 2021-12-05 17:01

  抓取网页数据违法吗(1.请正确使用网页爬虫非法数据影响他人服务器的正常工作)

  1.请正确使用网络爬虫,不要使用爬虫爬取非法数据,不影响他人服务器的正常运行。

  2.本文爬取的数据为跨境网站产品公开信息。本文仅供学习交流。

  3.本文所附源码爬取时间间隔10s,获取数据量2000多条。

  点击此处获取本文源码

  任务目标

  获取电商大数据后台发布的数千条商品数据网站,并保存在Excel中进行数据分析。

  

  难度分析需要登录网站会员账号后台查看数据。 网站 设置了反爬虫,很难模拟登录。使用 Selenium 控制 Chrome 浏览器。测试模式下可以被网站识别,无法正常登录账号。数据需要刷新后才能正常显示。解决的困难。网上各种隐藏Selenium功能的方法都失败了,所以通过Selenium打开浏览器的方法都行不通。并且许多 网站 可以通过多个特征识别出您正在使用 Selenium。

  

  2.通过研究,我们知道通过在Selenium中加入debuggerAddress,可以控制端口打开的浏览器。

  (1)进入chrome.exe所在的文件夹,在地址栏输入“CMD”,在该路径下打开CMD窗口。

  

  (2)在CMD窗口输入下面的命令打开一个新的Chrome浏览器窗口,在窗口中打开目标网站,登录会员账号。

  

  (3)在Python代码中,为selenium添加选项,这里添加的端口地址必须与上面CMD命令中的端口一致。

  chrome_options = webdriver.ChromeOptions()

chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

  3.通过访问页面,每次刷新,就可以得到整个页面的Html代码,然后用BeatifulSoup进行网页分析,提取产品的有用信息。

   driver.get(url)

driver.refresh()

time.sleep(10)

html = driver.find_element_by_xpath("//*").get_attribute("outerHTML")

soup = BeautifulSoup(html,'html.parser')

  程序逻辑

  1.通过打开的浏览器访问目标网站,登录会员账号,转置数据页面。

  # 使用网页驱动来运行chrome浏览器

chrome_options = webdriver.ChromeOptions()

chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

driver = webdriver.Chrome(r"C:\Users\E490\Anaconda3\Scripts\chromedriver",options=chrome_options)

# 访问网站首页,停留15s,人工登录后,自动刷新页面,停留10s,并搜索关键词

driver.get(url)

driver.refresh()

time.sleep(10)

html = driver.find_element_by_xpath("//*").get_attribute("outerHTML")

soup = BeautifulSoup(html,'html.parser')

  2.通过浏览器F12解析需要获取的字段的HTMl代码,可以通过BeautifulSoup库解析需要交换的数据字段。

  #产品标题

item_name = items_content[0].p['title']

#店铺名称

shop_name = items_content[1].text.strip()

#店铺类型

shop_type = items_content[2].text.strip()

#店铺类目

shop_categroy =items_content[3].text.strip()

#商品折扣价

item_discount_price = items_content[4].text.strip()

  3. 将采集到的数据及时保存到 CSV 文件中。

  

#打开csv文件

csv_title = 'lazada'+str(random.randint(100,999))+'.csv'

f = open(csv_title,'a',encoding='utf-8',newline='')

# 基于文件对象构建 csv写入对象

csv_writer = csv.writer(f)

# 构建列表头

csv_writer.writerow(["产品标题","店铺名称","店铺类型","店铺类目","商品折扣价","商品评分","累积评论数"])

  4.优化代码,可以完成100多个网页的迭代访问。

  5.查看获取的跨境电商商品数据。

  

  点击此处获取本文源码

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线