python爬虫爬取指定内容的解决方法

 更新时间:2022年06月14日 09:03:16   作者:皓_月  
这篇文章主要介绍了python爬虫爬取指定内容,爬取一些网站下指定的内容,一般来说可以用xpath来直接从网页上来获取,但是当我们获取的内容不唯一的时候我们无法选择,我们所需要的、所指定的内容,需要的朋友可以参考下

爬取一些网站下指定的内容,一般来说可以用xpath来直接从网页上来获取,但是当我们获取的内容不唯一的时候我们无法选择,我们所需要的、所指定的内容。

解决办法:

可以使用for In 语句来判断
如果我们所指定的内容在这段语句中我们就把这段内容爬取下来,反之就丢弃

实列代码如下:(以我们学校为例)

import urllib.request
from lxml import etree
def creat_url(page):
    if(page==1):
        url='https://www.qjnu.edu.cn/channels/9260.html'
    else:
        url='https://www.qjnu.edu.cn/channels/9260_'+str(page)+'.html'
    headers={
        'User-Agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'
    }
    request = urllib.request.Request(url=url,headers=headers)
    return request
def creat_respons(request):
    respons = urllib.request.urlopen(request)
    content = respons.read().decode('utf-8')
    return content
def down_2(url):
    url = url
    headers = {
        'User-Agent': ' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29'
    }
    request = urllib.request.Request(url=url, headers=headers)
    response = urllib.request.urlopen(request)
    content2 = response.read().decode('utf-8')
    tree2 = etree.HTML(content2)
    return tree2
def down_loads(content):
    tree = etree.HTML(content)
    name_list = tree.xpath('//div[@class="media"]/h4/a/text()')
    url_list = tree.xpath('//div[@class="media"]/h4/a/@href')
    for i in range(len(name_list)):
        if key in name_list[i]:
            with open('学校党员主题网址.txt', 'a', encoding='UTF-8') as fp:
                fp.write(url_list[i]+'\n')
            url = url_list[i]
            tree = down_2(url)
            tex_list = tree.xpath('//div[@class="field-item even"]//p/span/text()')
            name = name_list[i]
            with open(name + '.txt', 'w', encoding='UTF-8') as fp:
                fp.write(str(tex_list))
if __name__ == '__main__':
    all_page=int(input('请输入要爬取页码:'))
    key = str(input('请输入关键词:'))
    s_page=1
    for page in range(s_page,all_page+1):
        request=creat_url(page)
        content=creat_respons(request)
        down_loads(content)

此段代码的可执行性没有问题,逻辑上也能够串通
但是代码冗余较多,看起来有点复杂,现在正在研究简化版的代码!

到此这篇关于python爬虫爬取指定内容的解决方法的文章就介绍到这了,更多相关python爬取指定内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • django实现模型字段动态choice的操作

    django实现模型字段动态choice的操作

    这篇文章主要介绍了django实现模型字段动态choice的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python 匿名函数与三元运算学习笔记

    python 匿名函数与三元运算学习笔记

    这篇文章主要介绍了python 匿名函数与三元运算的相关资料,帮助大家更好的理解和学习python 编程,感兴趣的朋友可以了解下
    2020-10-10
  • python scrapy框架中Request对象和Response对象的介绍

    python scrapy框架中Request对象和Response对象的介绍

    本文介绍了python基础之scrapy框架中Request对象和Response对象的介绍,Request对象主要是用来请求数据,爬取一页的数据重新发送一个请求的时候调用,Response对象一般是由scrapy给你自动构建的,因此开发者不需要关心如何创建Response对象,下面来一起来了解更多内容吧
    2022-02-02
  • python实例化对象的具体方法

    python实例化对象的具体方法

    在本篇文章里小编给大家整理的是关于python实例化对象的具体方法,有兴趣的朋友们可以学习下。
    2020-06-06
  • Python EOL while scanning string literal问题解决方法

    Python EOL while scanning string literal问题解决方法

    这篇文章主要介绍了Python EOL while scanning string literal问题解决方法,本文总结出是数据库数据出现问题导致这个问题,需要的朋友可以参考下
    2015-04-04
  • python3.4控制用户输入与输出的方法

    python3.4控制用户输入与输出的方法

    今天小编就为大家分享一篇python3.4控制用户输入与输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python网络编程中urllib2模块的用法总结

    Python网络编程中urllib2模块的用法总结

    使用urllib2模块进行基于url的HTTP请求等操作大家也许都比较熟悉,这里我们再深入来了解一下urllib2针对HTTP的异常处理相关功能,一起来看一下Python网络编程中urllib2模块的用法总结:
    2016-07-07
  • python批量将excel内容进行翻译写入功能

    python批量将excel内容进行翻译写入功能

    这篇文章主要介绍了python批量将excel内容进行翻译写入功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Python四大金刚之字典详解

    Python四大金刚之字典详解

    这篇文章主要介绍了Python的字典,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助
    2021-10-10
  • Python中matplotlib如何改变画图的字体

    Python中matplotlib如何改变画图的字体

    这篇文章主要介绍了Python中matplotlib如何改变画图的字体,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08

最新评论