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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
在Python下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
简单了解python PEP的一些知识
Jul 13 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
python RSA加密的示例
Dec 09 Python
Python Django模型详解
Oct 05 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
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
JavaScript内核之基本概念
2011/10/21 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Python实现控制台输入密码的方法
2015/05/29 Python
解决Python传递中文参数的问题
2015/08/04 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
python numpy格式化打印的实例
2018/05/14 Python
使用Python来开发微信功能
2018/06/13 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
如何解决python多种版本冲突问题
2020/10/13 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
采购类个人求职的自我评价
2014/02/18 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
springboot读取nacos配置文件
2022/05/20 Java/Android
Hive日期格式转换方法总结
2022/06/25 数据库