爬虫(利用正则表达式爬取百度新闻(淘宝))

先直接在百度新闻中搜索“淘宝”
得到url = “”"
https://www.baidu.com/s?ie=utf-8&medium=0&rtt=1&bsst=1&rsv_dl=news_t_sk&cl=2&wd=%E6%B7%98%E5%AE%9D%E7%BD%91&tn=news&rsv_bp=1&rsv_sug3=12&rsv_sug1=3&rsv_sug7=100&oq=&rsv_sug2=0&rsv_btype=t&f=8&inputT=1755&rsv_sug4=3277"""

接着用requests库

import requests


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



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

print(res)

得到源代码:

爬虫(利用正则表达式爬取百度新闻(淘宝))_第1张图片
观察源代码发现,新闻标题和summary都在

和 之间,故使用正则表达式进行匹配
import re
p_info = "(.*?)"
info = re.findall(p_info , res , re.S)

for i in range(len(info)):
    info[i] = re.sub("<.*?>",'',info[i])
print(info)

爬虫(利用正则表达式爬取百度新闻(淘宝))_第2张图片
偶为title,奇为summary
故进行分开

title_list = []
summary_list = []
for i in range(len(info)):
    if i  % 2 == 0:
        
        title_list.append(info[i])
    else:
        summary_list.append(info[i])

爬虫(利用正则表达式爬取百度新闻(淘宝))_第3张图片
爬虫(利用正则表达式爬取百度新闻(淘宝))_第4张图片
接下来进行提取网页地址:

info_1 = """

(.*?)target""" href_info = re.findall(info_1 ,res, re.S) len(href_info) href_list = [] for i in href_info: href_list.append(re.findall(""" ,i)[0]) href_list

爬虫(利用正则表达式爬取百度新闻(淘宝))_第5张图片

最终进行整合

# title
# summary
# 网页地址
import pandas as pd
data = pd.DataFrame()
data["网页标题"] = title_list
data["网页摘要"] = summary_list
data["网页地址"] = href_list

data

爬虫(利用正则表达式爬取百度新闻(淘宝))_第6张图片
这里仅仅只是简单的request的应用,后续有待进阶。

你可能感兴趣的:(爬虫,python,正则表达式,百度)