BeautifulSoup编写脚本实现内网网页链接爬取

#!/usr/bin/python3 env

# -*- coding:utf-8 -*-

"""

auther:xiaohong.d

data:2020-04-30

description: this python3 script for groovy script use parameters to filter one module engine tag list

from now on. this script need python3 requests,json,BeautifulSoup only running on slave node

"""

import requests,json

from bs4 import BeautifulSoup

 

class RequestsParam:

"""参数组合"""

def __init__(self,url,prefix,module,suffix,timeout):

self.path = url+prefix+module+suffix

self.timeout = timeout

 

class Retrieve:

"""获取内容"""

def __init__(self,requestsparam):

self.req = requestsparam

 

def getPage(self):

r = requests.get(self.req.path,timeout=self.req.timeout)

return r.text

 

class ParsingHTML:

"""解析返回"""

def __init__(self,content):

self.content = content

 

def parseVersionLi(self):

soup = BeautifulSoup(self.content,'lxml')

newlist = [ i.string.replace("/", "") for i in soup.find_all("a")]

return newlist[1:]

if __name__ == '__main__':

try:

opts, args = getopt.getopt(sys.argv[1:], "ha:")

except Exception as ex:

print (ex)

sys.exit()

args = "shield"

for tmp1, tmp2 in opts:

if tmp1 == "-a":

args = tmp2

if tmp1 == "-h":

print ("this is a help message")

 

rp = RequestsParam('http://*****:9999/','box/',args+'/','ine/',0.300)

retrieve = Retrieve(rp)

res = retrieve.getPage()

ph = ParsingHTML(res)

li = ph.parseVersionLi()

for i in li:

print (i)

好的,以下是利用Python的BeautifulSoup编写的爬虫代码,可以爬取新浪微博前十条热搜的标题、日期以及热搜内容,并将结果输出展示,并保存到csv文件。 首先,我们需要安装BeautifulSoup和requests库,可以通过以下命令进行安装: ``` pip install beautifulsoup4 requests ``` 然后,我们可以编写如下代码: ```python import requests from bs4 import BeautifulSoup import csv # 请求URL url = 'https://s.weibo.com/top/summary' # 请求头部信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 发送请求 response = requests.get(url, headers=headers) # 解析HTML页面 soup = BeautifulSoup(response.text, 'lxml') # 获取热搜列表 hot_list = soup.find_all('tr')[1:11] # 输出展示和保存到csv文件 with open('weibo_hot.csv', 'w', newline='', encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(['排名', '标题', '日期', '内容']) for i, item in enumerate(hot_list): title = item.find_all('a')[0].text date = item.find_all('td')[1].text content = item.find_all('td')[2].text.strip() writer.writerow([i+1, title, date, content]) print(f"{i+1}. 标题:{title} 日期:{date} 内容:{content}") ``` 运行上述代码,即可输出展示和保存到csv文件。 其,我们使用了requests库发送HTTP请求,并使用BeautifulSoup库解析HTML页面。我们首先请求新浪微博的热搜页面,然后解析页面的热搜列表。对于每一条热搜,我们使用find_all方法获取对应的标题、日期和内容,并将这些信息保存到csv文件。同时,我们也将这些信息输出展示在控制台上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值