美文网首页
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