㈠ python新手有關於bs4 requests爬蟲問題
你上面的代碼是要實現爬取每一頁的圖片么,我只爬了一頁的,你加個循環,我看圖片的地址都是在post-content下,你提取出來加個for循環應該就能提取所有頁的循環了,
㈡ python新手求助 關於爬蟲的簡單例子
#coding=utf-8
from bs4 import BeautifulSoup
with open('index.html', 'r') as file:
fcontent = file.read()
sp = BeautifulSoup(fcontent, 'html.parser')
t = 'new_text_for_replacement'
# replace the paragraph using `replace_with` method
sp.find(itemprop='someprop').replace_with(t)
# open another file for writing
with open('output.html', 'w') as fp:
# write the current soup content
fp.write(sp.prettify())
如果要替換段落的內容而不是段落元素本身,可以設置.string屬性。
sp.find(itemprop='someprop').string = t
贊0收藏0評論0分享
用戶回答回答於 2018-07-26
問題取決於你搜索標準的方式,嘗試更改以下代碼:
print(sp.replace(sp.find(itemprop="someprop").text,t))
對此:
print(sp.replace(sp.find({"itemprop":"someprop"}).text,t))
# coding:utf-8
from bs4 import BeautifulSoup
import requests
import os
url = 'https://'
r = requests.get(url)
demo = r.text # 伺服器返回響應
soup = BeautifulSoup(demo, "html.parser")
"""
demo 表示被解析的html格式的內容
html.parser表示解析用的解析器
"""
# 輸出響應的html對象
ab = list()
with open("D:\\temp\\mii.txt","w+",encoding="utf-8") as xxx:
for mi in soup.find_all('a'):
ab.append(mi.prettify()) # 使用prettify()格式化顯示輸出
# xxx.writelines(str(mi))
xxx.writelines(ab)
xxx.close()
㈢ 怎樣安裝python的bs4包
使用pip安裝,進入python安裝目錄的script目錄下。然後使用命令pip install 包名,就可以了
㈣ python3如何安裝bs4
在python官網找到beautifulsoup模塊的下載頁面,點擊"downloap"將該模塊的安裝包下載到本地。
相關推薦:《Python教程》
將該安裝包解壓,然後在打開cmd,並通過cmd進入到該安裝包解壓後的文件夾目錄下。
在該文件目錄下輸入"python install setup.py",進行beautifulsoup4模塊的安裝,當安裝完成後會看到有"Finished"字樣。
安裝完成後,在cmd中運行Python,然後輸入"from bs4 import BeautifulSoup" 導入該模塊,如果成功安裝的話將沒有任何列印信息,否則會有相應的錯誤信息列印。
直接通過pip安裝
打開cmd,然後在cmd中輸入命令「pip install beautifulsoup4」,就可以成功安裝beautifulsoup4,不過該版本不一定會是4.4.1,版本會是當前python庫中的最新版本。
㈤ python下安裝bs4成功後,出現無法使用的情況,具體如下圖
已經安裝成功了,但bs4是一個模塊,不能直接print。應該用help(bs4)
㈥ 想用python獲取搜索到的內容,用bs4,但失敗了,請幫忙看下代碼有什麼問題
默認headers 請求不到數據的
import bs4
import requests
headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
}
res = requests.get('https://www..com/s?wd=漢字',headers=headers)
soup = bs4.BeautifulSoup(res.text)
linkElems = soup.select('.t')
print(linkElems)
㈦ python爬蟲時,bs4無法讀取網頁標簽中的文本
稍微說一下背景,當時我想研究蛋白質與小分子的復合物在空間三維結構上的一些規律,首先得有數據啊,數據從哪裡來?就是從一個涵蓋所有已經解析三維結構的蛋白質-小分子復合物的資料庫裡面下載。這時候,手動一個個去下顯然是不可取的,我們需要寫個腳本,能從特定的網站選擇性得批量下載需要的信息。python是不錯的選擇。
import urllib #python中用於獲取網站的模塊
import urllib2, cookielib
有些網站訪問時需要cookie的,python處理cookie代碼如下:
cj = ***.cookiejar ( )
opener = ***.build_opener( ***.httpcookieprocessor(cj) )
***.install_opener (opener)
通常我們需要在網站中搜索得到我們需要的信息,這里分為二種情況:
1. 第一種,直接改變網址就可以得到你想要搜索的頁面:
def GetWebPage( x ): #我們定義一個獲取頁面的函數,x 是用於呈遞你在頁面中搜索的內容的參數
url = 'http://xxxxx/***.cgi?&' + 『你想要搜索的參數』 # 結合自己頁面情況適當修改
page = ***.urlopen(url)
pageContent = ***.read( )
return pageContent #返回的是HTML格式的頁面信息
2.第二種,你需要用到post方法,將你搜索的內容放在postdata裡面,然後返回你需要的頁面
def GetWebPage( x ): #我們定義一個獲取頁面的函數,x 是用於呈遞你在頁面中搜索的內容的參數
url = 'http://xxxxx/xxx' #這個網址是你進入搜索界面的網址
postData = ***.urlencode( { 各種『post』參數輸入 } ) #這裡面的post參數輸入需要自己去查
req= ***.request (url, postData)
pageContent = ***.urlopen (req). read( )
return pageContent #返回的是HTML格式的頁面信息
在獲取了我們需要的網頁信息之後,我們需要從獲得的網頁中進一步獲取我們需要的信息,這里我推薦使用 BeautifulSoup 這個模塊, python自帶的沒有,可以自行網路谷歌下載安裝。 BeautifulSoup 翻譯就是『美味的湯』,你需要做的是從一鍋湯裡面找到你喜歡吃的東西。
import re # 正則表達式,用於匹配字元
from bs4 import BeautifulSoup # 導入BeautifulSoup 模塊
soup = BeautifulSoup(pageContent) #pageContent就是上面我們搜索得到的頁面
soup就是 HTML 中所有的標簽(tag)BeautifulSoup處理格式化後的字元串,一個標準的tag形式為:
hwkobe24
通過一些過濾方法,我們可以從soup中獲取我們需要的信息:
(1) find_all ( name , attrs , recursive , text , **kwargs)
這裡面,我們通過添加對標簽的約束來獲取需要的標簽列表, 比如 ***.find_all ('p') 就是尋找名字為『p』的 標簽,而***.find_all (class = "tittle") 就是找到所有class屬性為"tittle" 的標簽,以及***.find_all ( class = ***.compile('lass')) 表示 class屬性中包含『lass』的所有標簽,這里用到了正則表達式(可以自己學習一下,非常有用滴)
當我們獲取了所有想要標簽的列表之後,遍歷這個列表,再獲取標簽中你需要的內容,通常我們需要標簽中的文字部分,也就是網頁中顯示出來的文字,代碼如下:
tagList = ***.find_all (class="tittle") #如果標簽比較復雜,可以用多個過濾條件使過濾更加嚴格
for tag in tagList:
print ***.text
***.write ( str(***.text) ) #將這些信息寫入本地文件中以後使用
(2)find( name , attrs , recursive , text , **kwargs )
它與 find_all( ) 方法唯一的區別是 find_all() 方法的返回結果是值包含一個元素的列表,而 find() 方法直接返回結果
(3)find_parents( ) find_parent( )
find_all() 和 find() 只搜索當前節點的所有子節點,孫子節點等. find_parents() 和 find_parent() 用來搜索當前節點的父輩節點,搜索方法與普通tag的搜索方法相同,搜索文檔搜索文檔包含的內容
(4)find_next_siblings() find_next_sibling()
這2個方法通過 .next_siblings 屬性對當 tag 的所有後面解析的兄弟 tag 節點進代, find_next_siblings() 方法返回所有符合條件的後面的兄弟節點,find_next_sibling() 只返回符合條件的後面的第一個tag節點
(5)find_previous_siblings() find_previous_sibling()
這2個方法通過 .previous_siblings 屬性對當前 tag 的前面解析的兄弟 tag 節點進行迭代, find_previous_siblings()方法返回所有符合條件的前面的兄弟節點, find_previous_sibling() 方法返回第一個符合條件的前面的兄弟節點
(6)find_all_next() find_next()
這2個方法通過 .next_elements 屬性對當前 tag 的之後的 tag 和字元串進行迭代, find_all_next() 方法返回所有符合條件的節點, find_next() 方法返回第一個符合條件的節點
(7)find_all_previous() 和 find_previous()
這2個方法通過 .previous_elements 屬性對當前節點前面的 tag 和字元串進行迭代, find_all_previous() 方法返回所有符合條件的節點, find_previous()方法返回第一個符合條件的節點
具體的使用方法還有很多,用到這里你應該可以解決大部分問題了,如果要更深入了解可以參考官方的使用說明哈!
㈧ python bs4怎麼抓豆瓣評論做詞頻表
根據詞頻生成詞雲。
該程序進行爬取豆瓣熱評,將爬取的評論(json文件)保存到與該python文件同一級目錄下注意需要下載這幾個庫:requests、lxml、json、time,該程序將json中的數據進行處理,提取重要信息,並用wordcloud庫製作詞雲圖片,同樣保存到與該python文件同一級目錄下注意需要下載這幾個庫:jieba、wordcloud、json。
Python是一種跨平台的計算機程序設計語言是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越多被用於獨立的、大型項目的開發。
㈨ python如何利用requests和bs4爬取圖片
目標網站網址呢?網址發出來我看一下
每個網站的HTML結構不一樣,解析代碼就不一樣,要針對不同的網站編寫不同的代碼
編寫爬蟲代碼前還要評估目標網站是否需要登錄,數據是否有加密等諸多問題
㈩ python bs4 是怎麼做到識別標簽名,把他作為變數名存下來的
先說下基本原理和過程 原理:就是將可以打開的網頁(這里不限制為網站,本地網頁文件也可以哦),載入到內存中,然後解析html,讀取其中的文本內容或者儲存到本地或者資料庫中。