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)此段代碼的可執(zhí)行性沒有問題,邏輯上也能夠串通
但是代碼冗余較多,看起來有點復雜,現在正在研究簡化版的代碼!
到此這篇關于python爬蟲爬取指定內容的解決方法的文章就介紹到這了,更多相關python爬取指定內容內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python scrapy框架中Request對象和Response對象的介紹
本文介紹了python基礎之scrapy框架中Request對象和Response對象的介紹,Request對象主要是用來請求數據,爬取一頁的數據重新發(fā)送一個請求的時候調用,Response對象一般是由scrapy給你自動構建的,因此開發(fā)者不需要關心如何創(chuàng)建Response對象,下面來一起來了解更多內容吧2022-02-02
Python EOL while scanning string literal問題解決方法
這篇文章主要介紹了Python EOL while scanning string literal問題解決方法,本文總結出是數據庫數據出現問題導致這個問題,需要的朋友可以參考下2015-04-04

