欢迎关注我的公众号

网络爬虫入门之python

2022-08-04 17:04
194
0
添加收藏

网络爬虫定义:

(来自于百度百科):网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

为什么要学:

在数据爆发式增长时代,如果这些数据得以分析利用,可以帮助企业更好的做出决策。网络爬虫技术,也是大数据分析的第一个环节。

Robots协议(爬虫协议)

全称是网络爬虫排除标准,通过该协议告诉搜索引擎哪些页面可以抓取,哪些不能抓取。是国际互联网通行的道德规范,虽然没有写入法律,但每一个爬虫都应该遵守这项协议。

python

(来自于百度百科):Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。  Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。

版本很多,本次使用python3

python爬虫流程

 

重要知识点:

获取网页:requests、urllib、selenium

解析网页:re正则表达式、BeautifulSoup、lxml

存储数据:存入txt、csv、存入mysql、redis、mongodb等

框架:scrapy

 

python 安装

安装步骤 自行搜索百度,有很多,其实就是下一步下一步。

使用pip安装第三方库或者使用Anaconda安装第三方库。

 

编辑器:Pycharm

如果你使用Python安装包下载的python,推荐使用pycharm编辑器。下载免费版即可,官网好像被墙了。

python之爬虫初尝试

# 初探 网页爬虫
import requests
from bs4 import BeautifulSoup

link = "https://www.lyabest.com/"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'}
key_dict = {'par': 'A'}

r = requests.get(link, params=key_dict,headers=headers)

soup = BeautifulSoup(r.text, "html.parser")

title = soup.find("h3", class_="ll-card-main-title").text.strip()
print(r.encoding)
print(r.status_code)
print(title)
# for i in title:
#     _str = title[title.index(i)]
#     print(_str)
#     _str = _str.replace("<h3 class=\"ll-card-main-title\">", "").replace("</h3>", "").strip()
#     print(_str)

with open("D://tmp//title.txt", "a+") as f:
    f.write(title)

python初尝试

# 获取1-100之间的奇数
class Solution:
    def PrintTheOdd(self):
        index = 1
        while index <= 100:
            if(index % 2==1):
                print(index)
            index += 1

class Solution2:
    def PrintTheOdd(self):
        index = 1
        for i in range(1,100):
            if i%2==1:
                print(i)

if __name__ == "__main__":
    #while 遍历
    solution = Solution()
    solution.PrintTheOdd()

    #使用 range函数
    solution2 = Solution2()
    solution2.PrintTheOdd()
# 请将字符串“你好¥¥¥我正在学Python@#@#现在需要&*&*修改字符串”中的符号变成一个空格,输出格式为:你好我正在学习python现在需要修改字符串
import requests


class Solution:
    def StringRep(self):
        _str = "你好¥¥¥我正在学Python@#@#现在需要&*&*修改字符串"
        # 转成list
        _strList = list(_str)
        _result = ""
        for i in _strList:
            _temp = _strList[_strList.index(i)]
            # 遍历判断是否为字符串
            if (_temp.isalpha()):
                _result += _temp
        print(_result)


class Solution2:
    def StringRep(self):
        _str = "你好¥¥¥我正在学Python@#@#现在需要&*&*修改字符串"
        _str2 = _str.replace("¥", "").replace("@#", "").replace("&*", "")
        print(_str2)

if __name__ == "__main__":
    solution = Solution()
    solution.StringRep()

    solution2 = Solution2()
    solution2.StringRep()

全部评论