python爬虫实际应用_如何使用python爬虫论坛?

除了之前跟大家讲述过的视频、音乐以及时事新闻,关于爬虫可以做的事情有很多很多,像论坛也是其中之一,应用最火的内容,之前给大家罗列的爬虫实际内容有很多,但是还是希望将每个实际内容都跟大家说一下。让大家在遇到这些问题时候,可以有个参考,因此,根据大家罗列的清单,给大家继续安排python怎么爬取论坛,一起来看下吧~

库:requests,re,selenium,time

具体步骤:

一、搜索贴吧

准备一个自己想要爬取的内容

二、显示贴吧首页的帖子

要提取发帖人的名字和帖子主题,选择用正则表达式来实现,具体代码如下:titles = re.findall('

authors = re.findall('title="主题作者: (.*?)"', res.text)

三、查看某一个帖子

通过观察网页源码,可以用正则表达式匹配到这部分回复,然后对于这些回复,也要进行处理后再显示出来。comment_list2 = re.findall('post_bubble_middle_inner">(.*?)

', ' ')

具体源码如下:import requests

import time

import re

from selenium import webdriver

headers = {

"user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/"

"53.0.2785.89 Safari/537.36"

}

class TieBa:

def __init__(self, name, url):

self.name = name # 贴吧名

self.url = url # 贴吧首页的url

# 显示首页上的帖子作者和标题

def get_homepage(self):

print("\n\t\t\t\t\t\t{}吧".format(self.name))

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

titles = re.findall('

authors = re.findall('title="主题作者: (.*?)"', res.text)

for title, author in zip(titles, authors):

print(str(titles.index(title) + 1) + "--" + author + ":" + title[1])

print("\n****************************")

n = int(input("请输入您想要查看的帖子序号:"))

print("****************************\n")

self.get_page("http://tieba.baidu.com/p/" + titles[n - 1][0])

# 显示帖子的具体内容

def get_page(self, page_url):

res = requests.get(page_url, headers=headers)

author_list = re.findall('p_author_name j_user_card.*?>(.*?)<', res.text)

comment_list = re.findall('content clearfix">(.*?)

', res.text, re.DOTALL)

if len(comment_list) == 0:

comment_list = re.findall('d_post_content j_d_post_content ">(.*?)', res.text, re.DOTALL)

# 带回复框的单独考虑

comment_list2 = re.findall('post_bubble_middle_inner">(.*?)

num = 0

# 处理图片和表情,显示对应的链接

for author, comment in zip(author_list, comment_list):

print(author.strip(), end=" : ")

comment = comment.strip().replace('
', ' ')

if "

comment = comment_list2[num].replace('
', ' ').replace('

', ' ')

num += 1

if "src" in comment: # 处理图片信息

src_list = re.findall('src="(.*?)"', comment)

pattern_list = re.findall('()', comment)

for s, p in zip(src_list, pattern_list):

comment = comment.replace(p, ' ' + s)

if "href" in comment: # 处理表情信息

pattern_list = re.findall('()', comment)

for p in pattern_list:

comment = comment.replace(p, ' ').replace("", '')

print(comment)

while True:

x = int(input("\n输入1查看下一页,输入0回到首页,输入-1退出程序:"))

if x == -1:

exit()

if x == 0:

self.get_homepage()

if x == 1:

next_page = re.findall('下一页', res.text)

if len(next_page)>0:

self.get_page("http://tieba.baidu.com" + next_page[0])

else:

print("已经是最后一页了!")

# 利用selenium模拟浏览器查找贴吧

def search():

chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--headless')

browser = webdriver.Chrome(chrome_options=chrome_options)

browser.get("https://tieba.baidu.com/")

name = input("请输入想要进入的贴吧名字:")

browser.find_element_by_xpath('//*[@id="wd1"]').send_keys(name)

browser.find_element_by_xpath('//*[@id="tb_header_search_form"]/span[1]/a').click()

url = browser.current_url

if "tieba.baidu.com/f?ie=utf-8" in url: # 搜索的贴吧存在

print("正在进入{}吧,请稍等...".format(name))

time.sleep(2)

t = TieBa(name, url)

t.get_homepage()

else:

print("没有找到{}吧\n".format(name))

main()

def main():

x = int(input("输入1搜索进入贴吧,输入-1退出程序:"))

if x == 1:

search()

else:

exit()

if __name__ == '__main__':

main()

好了,以上就是爬取论坛的内容了,如果大家遇到这种问题,可以来看下小编的这篇内容,很容易解决的哦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于Python爬虫获取新浪新闻信息的问题。首先,我们需要先了解一下爬虫的基本概念和工作原理。 爬虫是一种自动化程序,可以模拟人类对网站的访问并自动抓取数据。它可以通过网络上的URL链接来获取网页内容,并将其转换成结构化的数据,供后续的数据分析或其他用途。 下面是一个简单的Python爬虫程序,可以用来获取新浪新闻的信息: ```python import requests from bs4 import BeautifulSoup url = 'https://news.sina.com.cn/' r = requests.get(url) r.encoding = 'utf-8' soup = BeautifulSoup(r.text, 'html.parser') news_list = soup.find_all('a', class_='news-item') for news in news_list: print(news.text.strip()) print(news['href']) ``` 这个程序使用Python的requests库和BeautifulSoup库来获取新浪新闻的信息。首先,我们需要将新浪新闻的URL链接赋值给变量url,然后使用requests库来发送HTTP请求,获取网页内容。接着,我们需要使用BeautifulSoup库来解析网页内容,提取出我们需要的信息。在这个例子中,我们使用了find_all方法来查找所有class为news-item的a标签,并使用循环打印出每个新闻的标题和链接。 当然,这只是一个简单的例子,实际上,爬虫应用非常广泛,可以用来获取各种类型的数据,例如文本、图像、音频等等。但是,请注意,爬虫使用需要遵守法律法规和道德规范,不要进行恶意攻击或侵犯他人隐私。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值