美文网首页
python基础学习:网络爬虫2

python基础学习:网络爬虫2

作者: 0清婉0 | 来源:发表于2020-12-27 18:41 被阅读0次

    一.在获取网页源码时,需要设置requests.get()中的headers参数,模拟浏览器的访问请求。

    headers参数提供的是网站访问者的信息

    headers中的User-Agent(用户代理)表示是用什么浏览器访问的

    import requests

    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

    url ='https://www.baidu.com/s?tn=news&rtt=1&bsst=1&cl=2&wd=阿里巴巴'

    res = requests.get(url,headers=headers).text

    print(res)

    【小技巧】查看浏览器版本

    打开浏览器,在地址栏中输入about:version,可以试一下

    二.使用正则表达式

    1.findall()函数:在原始文本中寻找所有符合匹配规则的文本内容

    re.findall(匹配规则, 原始文本)

    findall()函数得到的是一个列表,而不是字符串或数字

    import re

    content = 'Hello 123 world'

    result = re.findall('\d\d\d', content)    # \d 匹配1个数字

    print(result)    # ['123']

    如果想获取某个元素

    import re

    content2 = 'Hello 123 world 456 华小智Python基础教学135'

    result2 = re.findall('\d\d\d', content2)

    print(result2)  # ['123', '456', '135']

    print(result2[0])   # 123

     (.*?)

    用于获取文本A与文本B之间的内容,并不需要知道它的确切长度及格式,但是需要知道它在哪两个内容之间

    文本A(.*?)文本B

    import re

    res = '文本A百度新闻文本B,新闻标题文本A新浪财经文本B,文本A搜狗新闻文本B新闻网址'

    p_source = '文本A(.*?)文本B'

    source = re.findall(p_source, res)

    print(source)

    相关文章

      网友评论

          本文标题:python基础学习:网络爬虫2

          本文链接:https://www.haomeiwen.com/subject/itkonktx.html