当前位置: 首页 > news >正文

设计类参考网站推荐管理wordpress

设计类参考网站推荐,管理wordpress,青岛做网站费用,如何解决网站图片打开慢爬取时间#xff1a;2019-10-12爬取难度#xff1a;★★☆☆☆☆请求链接#xff1a;https://bbs.hupu.com/bxj爬取目标#xff1a;爬取虎扑论坛步行街的帖子#xff0c;包含主题#xff0c;作者#xff0c;发布时间等#xff0c;数据保存到 MongoDB 数据库涉及知识2019-10-12爬取难度★★☆☆☆☆请求链接https://bbs.hupu.com/bxj爬取目标爬取虎扑论坛步行街的帖子包含主题作者发布时间等数据保存到 MongoDB 数据库涉及知识请求库 requests、解析库 Beautiful Soup、数据库 MongoDB 的操作完整代码https://github.com/TRHX/Python3-Spider-Practice/tree/master/BasicTraining/hupu其他爬虫实战代码合集持续更新https://github.com/TRHX/Python3-Spider-Practice爬虫实战专栏持续更新https://itrhx.blog.csdn.net/article/category/9351278 文章目录【1x00】循环爬取网页模块【2x00】解析模块【3x00】MongoDB 数据储存模块【4x00】完整代码【5x00】数据截图【6x00】程序不足的地方【1x00】循环爬取网页模块 观察虎扑论坛步行街分区请求地址为https://bbs.hupu.com/bxj 第一页https://bbs.hupu.com/bxj 第二页https://bbs.hupu.com/bxj-2 第三页https://bbs.hupu.com/bxj-3 不难发现每增加一页只需要添加 -页数 参数即可最后一页是第 50 页因此可以利用 for 循环依次爬取定义一个 get_pages() 函数返回初始化 Beautiful Soup 的对象 page_soup方便后面的解析函数调用 虽然一共有 50 页但是当用户访问第 10 页以后的页面的时候会要求登录虎扑不然就没法查看而且登录时会出现智能验证所以程序只爬取前 10 页的数据 def get_pages(page_url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36}response requests.get(urlpage_url, headersheaders)page_soup BeautifulSoup(response.text, lxml)return page_soupif __name__ __main__:for i in range(1, 11):url https://bbs.hupu.com/bxj- str(i)soup get_pages(url) 【2x00】解析模块 使用 Beautiful Soup 对网页各个信息进行提取最后将这些信息放进一个列表里然后调用列表的 .append() 方法再将每条帖子的列表依次加到另一个新列表里最终返回的是类似于如下形式的列表 [[帖子1, 作者1], [帖子2, 作者2], [帖子3, 作者3]]这样做的目的是方便 MongoDB 依次储存每一条帖子的信息 def parse_pages(page_soup):data_list []all_list page_soup.find(ul, class_for-list)post_list all_list.find_all(li)# print(result_list)for post in post_list:# 帖子名称post_title post.find(a, class_truetit).text# print(post_title)# 帖子链接post_url https://bbs.hupu.com post.find(a, class_truetit)[href]# print(post_url)# 作者author post.select(.author a)[0].text# print(author)# 作者主页author_url post.select(.author a)[0][href]# print(author_url)# 发布日期post_date post.select(.author a)[1].text# print(post_date)reply_view post.find(span, class_ansour).text# 回复数post_reply reply_view.split(/)[0].strip()# print(post_reply)# 浏览量post_view reply_view.split(/)[1].strip()# print(post_view)# 最后回复时间last_data post.select(.endreply a)[0].text# print(last_data)# 最后回复用户last_user post.select(.endreply span)[0].text# print(last_user)data_list.append([post_title, post_url, author, author_url, post_date, post_reply, post_view, last_data, last_user])# print(data_list)return data_list 【3x00】MongoDB 数据储存模块 首先使用 MongoClient() 方法向其传入地址参数 host 和 端口参数 port指定数据库为 hupu集合为 bxj 将解析函数返回的列表传入到储存函数依次循环该列表对每一条帖子的信息进行提取并储存 def mongodb(data_list):client MongoClient(localhost, 27017)db client.hupucollection db.bxjfor data in data_list:bxj {帖子名称: data[0],帖子链接: data[1],作者: data[2],作者主页: data[3],发布日期: str(data[4]),回复数: data[5],浏览量: data[6],最后回复时间: str(data[7]),最后回复用户: data[8]}collection.insert_one(bxj) 【4x00】完整代码 # # --*-- coding: utf-8 --*-- # Time : 2019-10-12 # Author : TRHX # Blog : www.itrhx.com # CSDN : https://blog.csdn.net/qq_36759224 # FileName: hupu.py # Software: PyCharm # import requests import time import random from pymongo import MongoClient from bs4 import BeautifulSoupdef get_pages(page_url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36}response requests.get(urlpage_url, headersheaders)page_soup BeautifulSoup(response.text, lxml)return page_soupdef parse_pages(page_soup):data_list []all_list page_soup.find(ul, class_for-list)post_list all_list.find_all(li)# print(result_list)for post in post_list:# 帖子名称post_title post.find(a, class_truetit).text# print(post_title)# 帖子链接post_url https://bbs.hupu.com post.find(a, class_truetit)[href]# print(post_url)# 作者author post.select(.author a)[0].text# print(author)# 作者主页author_url post.select(.author a)[0][href]# print(author_url)# 发布日期post_date post.select(.author a)[1].text# print(post_date)reply_view post.find(span, class_ansour).text# 回复数post_reply reply_view.split(/)[0].strip()# print(post_reply)# 浏览量post_view reply_view.split(/)[1].strip()# print(post_view)# 最后回复时间last_data post.select(.endreply a)[0].text# print(last_data)# 最后回复用户last_user post.select(.endreply span)[0].text# print(last_user)data_list.append([post_title, post_url, author, author_url, post_date, post_reply, post_view, last_data, last_user])# print(data_list)return data_listdef mongodb(data_list):client MongoClient(localhost, 27017)db client.hupucollection db.bxjfor data in data_list:bxj {帖子名称: data[0],帖子链接: data[1],作者: data[2],作者主页: data[3],发布日期: str(data[4]),回复数: data[5],浏览量: data[6],最后回复时间: str(data[7]),最后回复用户: data[8]}collection.insert_one(bxj)if __name__ __main__:for i in range(1, 11):url https://bbs.hupu.com/bxj- str(i)soup get_pages(url)result_list parse_pages(soup)mongodb(result_list)print(第, i, 页数据爬取完毕)time.sleep(random.randint(3, 10))print(前10页所有数据爬取完毕) 【5x00】数据截图 一共爬取到 1180 条数据 【6x00】程序不足的地方 程序只能爬取前 10 页的数据因为虎扑论坛要求从第 11 页开始必须登录账号才能查看并且登录时会有智能验证可以使用自动化测试工具 Selenium 模拟登录账号后再进行爬取。
http://mrfarshtey.net/news/65339/

相关文章:

  • 天正电气网站建设网页版微信传文件
  • 做单位网站网站平台建设费用
  • 中国移动手机支付网站学院网站源码
  • 一个网站开发周期阿里巴巴logo高清图
  • 网站设计岗位做哪些事情简易软件下载
  • 网站搭建网中国菲律宾篮球比赛直播
  • 服务器上如何建设多个网站做企业网的公司
  • 医药网站 备案坪山住房和建设局网站
  • 中国代加工网站石家庄seo代理
  • 中国打仗最新消息seo优化思路
  • 网站推广的方式包括福建住房和城乡建设部网站
  • 网站设计色板音乐网站 源码
  • 深圳手机商城网站设计公司百度seo排名报价
  • 兰州新区规划建设局网站使wordpress没有手机页面
  • 中兴能源建设有限公司网站c2c网站代表和网址
  • 简单的网站开发工具企业门户网站建设报价
  • 在外国租服务器做那种网站公司简介模板图片
  • 没有公司怎么做网站建设项目网站备案申请表
  • 分类信息网站建设专职西双版纳网站建设开发公司
  • 做网站什么最重要宁波seo服务推广软件
  • 会做网站有什么可以做吗推荐个2021能看的网站免费
  • 郑州动力无限网站建设中企建网站
  • 红安县城乡建设局官方网站万网域名绑定到其它网站
  • 做塑胶材料的网站网络架构模式有哪些
  • 0592 网站建设北京工商注册登记网官网
  • 镇江网站建设dmooo互联网提供的服务主要有哪些
  • 温州哪里有做网站的公司4000-262-wordpress如何改代码
  • 常州网站制作计划做p2p网站卖赚钱吗
  • 百度官方网站入口济源市工程建设监理所网站
  • 网站更换域名 seo修改wordpress入口地址