Python电商爬虫保姆级入门教程(纯新手向)

这篇具有很好参考价值的文章主要介绍了Python电商爬虫保姆级入门教程(纯新手向)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python电商爬虫保姆级入门教程(纯新手向),python,scikit-learn,flask,java,maven,spring

图灵Python课堂

长沙图灵教育于2001年开始进入教育行业,立足泛IT类职业教育,以打造高新技术人才为宗旨,专注于提供多层次、个性化的职业技能培训课程,为各行业培养技术开发、应用和管理等岗位的中高端人才,致力于成为优质的职业教育内容提供商。

01

Python优势

对于网络爬虫开发来说,Python有着无与伦比天然优势,这里从两个方面对其优势进行分析与讲解。

1、抓取网页本身的电商商品详情API接口

相比其他静态编程语言(如java、c#与c++)Python抓取网页文档的接口更简洁,而对比其他动态脚本语言(如perl,shell)Python的urllib包提供了较为完整的访问网页文档的API。

此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。此时,需要模拟user agent的行为来构造合适的请求(模拟用户登录、模拟session/cookie的存储和设置)。在Python里都有非常优秀的第三方包帮助搞定这些工作(如Requests,mechanize)。

2、网页抓取后的处理

抓取的网页通常需要处理,比如过滤html标签,提取文本等。Python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。

其实以上功能很多语言和工具都能做,但是用Python能够干得最快,最干净。

Life is short, you need python.

PS:python2.x和python3.x有很大不同,本文只讨论python3.x的爬虫实现方法。

02

爬虫框架

URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器。

网页下载器(urllib):爬取url对应的网页,存储成字符串,传送给网页解析器。

网页解析器(BeautifulSoup):解析出有价值的数据,存储下来,同时补充url到URL管理器。

03

URL管理器

基本功能

  • 添加新的url到待爬取url集合中。

  • 判断待添加的url是否在容器中(包括待爬取url集合和已爬取url集合)。

  • 获取待爬取的url。

  • 判断是否有待爬取的url。

  • 将爬取完成的url从待爬取url集合移动到已爬取url集合。

存储方式

1、内存(python内存)
待爬取url集合:set()
已爬取url集合:set()

2、关系数据库(mysql)
urls(url, is_crawled)

3、缓存(redis)
待爬取url集合:set
已爬取url集合:set

大型互联网公司,由于缓存数据库的性能高,所以一般把url存储在缓存数据库中。小型公司,一般把url存储在内存中,要永久存储,则存储到关系数据库中。

05

网页下载器urllib

将url对应的网页下载到本地,存储成一个文件或字符串。

基本方法

新建baidu.py,内容如下:

import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')buff = response.read()html = buff.decode("utf8")print(html)
 
 

命令行中执行python baidu.py,则可以打印出获取到的页面。

构造Request

上面的代码,可以修改为:

import urllib.requestrequest = urllib.request.Request('http://www.baidu.com')response = urllib.request.urlopen(request)buff = response.read()html = buff.decode("utf8")print(html)
 
 

携带参数

新建baidu2.py,内容如下:

import urllib.requestimport urllib.parse
url = 'http://www.baidu.com'values = {'name': 'voidking','language': 'Python'}data = urllib.parse.urlencode(values).encode(encoding='utf-8',errors='ignore')headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0' }request = urllib.request.Request(url=url, data=data,headers=headers,method='GET')response = urllib.request.urlopen(request)buff = response.read()html = buff.decode("utf8")print(html)
 
 

使用Fiddler监听数据

要查看请求是否真的携带了参数,需使用fiddler。

添加处理器

 
 
import urllib.requestimport http.cookiejar# 创建cookie容器cj = http.cookiejar.CookieJar()# 创建openeropener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))# 给urllib.request安装openerurllib.request.install_opener(opener)# 请求request = urllib.request.Request('http://www.baidu.com/')response = urllib.request.urlopen(request)buff = response.read()html = buff.decode("utf8")print(html)print(cj)

06

网页解析器(BeautifulSoup)

从网页中提取出有价值的数据和新的url列表。

解析器选择

为了实现解析器,可以选择使用正则表达式、html.parser、BeautifulSoup、lxml等,这里选择BeautifulSoup。其中,正则表达式基于模糊匹配,而另外三种则是基于DOM结构化解析。

BeautifulSoup安装测试

1、安装,在命令行下执行pip install beautifulsoup4。
2、测试

 
 
import bs4print(bs4)

基本用法

1、创建BeautifulSoup对象

 
 
import bs4from bs4 import BeautifulSoup

# 根据html网页字符串创建BeautifulSoup对象html_doc = """<html><head><title>The Dormouse's story</title></head><body><p class="title"><b>The Dormouse's story</b></p><p class="story">Once upon a time there were three little sisters; and their names were<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;and they lived at the bottom of a well.</p><p class="story">...</p>"""soup = BeautifulSoup(html_doc)print(soup.prettify())

2、访问节点

 
 
print(soup.title)print(soup.title.name)print(soup.title.string)print(soup.title.parent.name)

print(soup.p)print(soup.p['class'])

3、指定tag、class或id

 
 
print(soup.find_all('a'))print(soup.find('a'))print(soup.find(class_='title'))print(soup.find(id="link3"))print(soup.find('p',class_='title'))

4、从文档中找到所有<a>标签的链接

 
 
for link in soup.find_all('a'):    print(link.get('href'))

出现了警告,根据提示,在创建BeautifulSoup对象时,指定解析器即可。

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

5、从文档中获取所有文字内容

 
 
print(soup.get_text())

6、正则匹配文章来源地址https://www.toymoban.com/news/detail-609570.html

 
 
link_node = soup.find('a',href=re.compile(r"til"))print(link_node)

到了这里,关于Python电商爬虫保姆级入门教程(纯新手向)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫简单入门教程

    这篇 Python 爬虫教程主要讲解以下 5 部分 了解网页结构; 使用 requests 库抓取网站数据; 使用 Beautiful Soup 解析网页; 清洗和组织数据; 爬虫攻防战; 网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JScript(活动脚本语言)。 HTML 负责定义网页

    2024年02月06日
    浏览(205)
  • python爬虫入门教程(非常详细)

    爬虫指的是一种自动化程序,能够模拟人类在互联网上的浏览行为,自动从互联网上抓取、预处理并保存所需要的信息。 爬虫运行的过程一般是先制定规则(如指定要抓取的网址、要抓取的信息的类型等),紧接着获取该网址的HTML源代码,根据规则对源代码进行解析和抽取

    2024年02月09日
    浏览(40)
  • Python爬虫入门教程!手把手教会你爬取网页数据

    其实在当今社会,网络上充斥着大量有用的数据,我们只需要耐心的观察,再加上一些技术手段,就可以获取到大量的有价值数据。这里的“技术手段”就是网络爬虫。今天就给大家分享一篇爬虫基础知识和入门教程: 爬虫就是自动获取网页内容的程序,例如搜索引擎,Go

    2023年04月26日
    浏览(54)
  • Python逆向爬虫入门教程: 酷狗音乐加密参数signature逆向解析

    网站链接: aHR0cHM6Ly93d3cua3Vnb3UuY29tLw== 正常抓包分析找到音频链接地址   通过链接搜索找到对应的数据包位置     分析 signature 参数加密位置     通过 s 列表 合并成字符串, 传入d函数中进行加密, 返回32位, 还是比较明显的MD5加密, 相当于请求参数除了signature 以外, 在头尾加了一

    2024年02月02日
    浏览(37)
  • 很合适新手入门使用的Python游戏开发包pygame实例教程-01[开发环境配置与第一个界面]

    我们假定你已经安装好了我们开发python程序的sublime text,如果不知道怎么安装的可以参照我前面的博文。这里只需要解决的是配置好Pygame的问题。本篇博文主要解决开发环境配置以及第一个游戏界面的显示问题。 文章原出处: https://blog.csdn.net/haigear/article/details/130173836 没有

    2024年01月25日
    浏览(56)
  • Python逆向爬虫入门教程: 网易云音乐加密参数 params & encSecKey 逆向解析

    网站链接: aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvZGlzY292ZXIvdG9wbGlzdD9pZD0zNzc4Njc4 正常流程抓包分析数据, 找到音频链接   找到歌曲信息对应数据包         分析加密参数位置     找到对应的加密位置, 其余就去扣代码即可, 缺什么补什么就行了, 主要是注意一下传入的参数问题, 因为它传入的

    2024年03月27日
    浏览(47)
  • Git 新手快速入门教程

    1. 何为版本控制 版本控制是一种记录文件变化的系统,可以跟踪文件的修改历史,并允许用户在不同版本之间进行比较、恢复或合并。它主要用于软件开发过程中管理代码的变更,但也可以应用于任何需要跟踪文件变更的场景。 版本控制系统(VCS)可以帮助团队协作开发,

    2024年04月26日
    浏览(38)
  • HLS新手入门教程

    HLS是一种高级综合技术,它允许开发人员使用高级语言(如C、C++和SystemC)来描述数字电路的行为和功能,然后将其转换为硬件电路实现。这种转换过程是自动完成的,因此开发人员无需手动编写硬件描述语言(HDL)。 HLS的主要目的是简化FPGA设计流程,提高设计效率和设计质

    2024年02月02日
    浏览(38)
  • Midjourney入门教程,新手必看!

    1.1 Midjourney是什么? Midjourney是一款非常受欢迎的AI绘图工具,可根据用户输入的内容生成高质量图像,该工具于2022年3月首次亮相,虽然Midjourney在发展过程中遇到了技术、金钱等诸多压力,但最终给广大AI绘画爱好者带来极致的体验。 1.2 Midjourney有何优势? ●智能化绘图 Mi

    2024年01月18日
    浏览(42)
  • 30天入门Python(基础篇)——第2天:Python安装(保姆级)与IDE的认识与选择+详细安装教程(万字建议收藏)

    🔥🔥本文已收录于《30天学习Python从入门到精通》 🉑🉑本专栏专门 针对于零基础和需要重新复习巩固的同学 所准备的一套基础班教学, 从0基础到精通Python ,轻松掌握Python,欢迎各位同学订阅,专栏订阅地址:点我直达 🤞🤞此外如果您已工作,如需利用Python解决办公中

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包