python爬虫实现获取下一页代码


Posted in Python onMarch 13, 2020

我们首先来看下实例代码:

from time import sleep

import faker
import requests
from lxml import etree

fake = faker.Faker()

base_url = "http://angelimg.spbeen.com"

def get_next_link(url):
  content = downloadHtml(url)
  html = etree.HTML(content)
  next_url = html.xpath("//a[@class='ch next']/@href")
  if next_url:
    return base_url + next_url[0]
  else:
    return False

def downloadHtml(ur):
  user_agent = fake.user_agent()
  headers = {'User-Agent': user_agent,"Referer":"http://angelimg.spbeen.com/"}
  response = requests.get(url, headers=headers)
  return response.text

def getImgUrl(content):
  html = etree.HTML(content)
  img_url = html.xpath('//*[@id="content"]/a/img/@src')
  title = html.xpath(".//div['@class=article']/h2/text()")

  return img_url[0],title[0]

def saveImg(title,img_url):
  if img_url is not None and title is not None:
    with open("txt/"+str(title)+".jpg",'wb') as f:
      user_agent = fake.user_agent()
      headers = {'User-Agent': user_agent,"Referer":"http://angelimg.spbeen.com/"}
      content = requests.get(img_url, headers=headers)
      #request_view(content)
      f.write(content.content)
      f.close()

def request_view(response):
  import webbrowser
  request_url = response.url
  base_url = '<head><base href="%s" rel="external nofollow" >' %(request_url)
  base_url = base_url.encode()
  content = response.content.replace(b"<head>",base_url)
  tem_html = open('tmp.html','wb')
  tem_html.write(content)
  tem_html.close()
  webbrowser.open_new_tab('tmp.html')

def crawl_img(url):
  content = downloadHtml(url)
  res = getImgUrl(content)
  title = res[1]
  img_url = res[0]
  saveImg(title,img_url)

if __name__ == "__main__":
  url = "http://angelimg.spbeen.com/ang/4968/1"

  while url:
    print(url)
    crawl_img(url)
    url = get_next_link(url)

python 爬虫如何执行自动下一页循环加载文字

from bs4 import BeautifulSoup
import requests
import time
from lxml import etree
import os
# 该demo执行的为如何利用bs去爬一些文字
def start():
  # 发起网络请求
  html=requests.get('http://www.baidu.com')
  #编码
  html.encoding=html.apparent_encoding
  #创建sp
  soup=BeautifulSoup(html.text,'html.parser')
  print(type(soup))
  print('打印元素')
  print(soup.prettify())
  #存储一下title 该方法没有提示直接展示
  title=soup.head.title.string
  print(title)
#   写入文本
  with open(r'C:/Users/a/Desktop/a.txt','w') as f:
    f.write(title)
  print(time.localtime())
 
url_2 = 'http://news.gdzjdaily.com.cn/zjxw/politics/sz_4.shtml'
def get_html_from_bs4(url):
 
  # response = requests.get(url,headers=data,proxies=ip).content.decode('utf-8')
  response = requests.get(url).content.decode('utf-8')
  soup = BeautifulSoup(response, 'html.parser')
  next_page = soup.select('#displaypagenum a:nth-of-type(9)')[0].get('href')
  # for i in nett
  print(next_page)
  next2='http://news.gdzjdaily.com.cn/zjxw/politics/'+next_page
 
 
def get_html_from_etree(url):
 
  response = requests.get(url).content.decode('utf-8')
  html= etree.HTML(response)
 
  next_page = html.xpath('.//a[@class="PageNum"][8]/@href')[0]
  print(next_page)
  # next2='http://news.gdzjdaily.com.cn/zjxw/politics/'+next_page
 
 
get_html_from_etree(url_2)
 
if __name__ == '__main__':
  start()

到此这篇关于python爬虫实现获取下一页代码的文章就介绍到这了,更多相关python爬虫获取下一页内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
python动态加载包的方法小结
Apr 18 Python
python实现简单遗传算法
Mar 19 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
python利用小波分析进行特征提取的实例
Jan 09 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
python判断正负数方式
Jun 03 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
通过代码实例了解Python异常本质
Sep 16 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 #Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 #Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 #Python
详解用Python进行时间序列预测的7种方法
Mar 13 #Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 #Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 #Python
Django choices下拉列表绑定实例
Mar 13 #Python
You might like
phpfans留言版用到的install.php
2007/01/04 PHP
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
PHP数据过滤的方法
2013/10/30 PHP
php实现微信发红包
2015/12/05 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
Js中获取frames中的元素示例代码
2013/07/30 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
vue实现计算器功能
2020/02/22 Javascript
浅谈Django的缓存机制
2018/08/23 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
深入分析python 排序
2020/08/24 Python
前台接待岗位职责
2013/12/03 职场文书
总经理秘书的岗位职责
2013/12/27 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
网络编辑岗位职责
2014/03/18 职场文书
银行委托书范本
2014/04/04 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
软件售后服务方案
2014/05/29 职场文书
物理教育专业求职信
2014/06/25 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js