爬取網頁時如何寫入文字、圖片到一個文件里?
爬蟲入門求問
爬取網頁的時候網頁是圖文並茂的單抓取文字或圖片可以做到
但是如何把圖片、文字一起寫入到文件里?python可以做到哪一種?比如word?pdf?html?或者其他.看到有人回答說無意義,補充下:我的目的是下載帖子等圖文並貌的長資料到kindle閱讀,如果圖片和文字分開是容易做到,但是還要手工整合會很浪費時間,不符合自動化編程的思路。
作者:楊航鋒
鏈接:python爬蟲如何按序抓取一個頁面上的圖文? - 楊航鋒的回答 - 知乎
來源:知乎著作權歸作者所有,轉載請聯繫作者獲得授權。搬運一個以前的回答!這樣是可以做到的,起因我和幾個同學打算做一個針對大四畢業生的網站,所以需要整合學校官網的校園招聘信息(只抓取校園招聘不要網投簡歷的)我在抓取學校官網的校園招聘信息時就遇到了這個問題。我採取的方法是抓取圖片的鏈接,這個鏈接一般是沒有主域名的,比如如果只是抓取整個html的話是不會顯示出圖片的,因此抓取該鏈接然後再加上主域名然後再放回到html標籤中即可。效果如下圖所示:
代碼參考:
import requests
import re
from bs4 import BeautifulSoup as bs
def crawl_all_main_url(page=10):
# 默認抓取官網前十頁招聘信息的url
all_url_list = []
for _ in range(1, page+1):
url = "http://zjc.ecit.edu.cn/jy/app/newslist.php?BigClassName=%D5%D0%C6%B8%D0%C5%CF%A2Page={0}".format(_)
page_html = requests.get(url).text
x_url_reg = re.compile("&(.*?)&")
explain_text = re.findall(explain_text_reg, html)[0]
if ("時間" and "地點") in explain_text:
return True
else:
pass
def save_html():
all_url_list = crawl_all_main_url()
for son_url in all_url_list:
if get_title(son_url):
text_html = requests.get(son_url).content.decode("gbk")
domain_url = "http://zjc.ecit.edu.cn/jy"
img_url_reg = re.compile("border=0 src="..(.*?)"")
child_url = re.findall(img_url_reg, text_html)
if child_url != []:
img_url = domain_url + child_url[0]
re_url = "src="..{0}"".format(child_url[0])
end_url = "src="{0}"".format(img_url)
end_html = text_html.replace(re_url, end_url)
soup = bs(end_html, "lxml")
text_div = soup.find_all("div", id="main")[0]
with open("./{0}.html".format(son_url[-11:]), "wb") as file:
text_html = "&U職網提供數據諮詢服務 & &
file.write(text_html.encode("utf-8"))
else:
with open("./{0}.html".format(son_url[-11:]), "wb") as file:
html = requests.get(son_url).content.decode("gbk")
soup = bs(text_html, "lxml")
text_div = soup.find_all("div", id="main")[0]
text_html = "&U職網提供數據諮詢服務 & & & & {0} &".format(text_div)
file.write(text_html.encode("utf-8"))
else:
continue
if __name__ == "__main__":
save_html()
這裡也給出先前寫的一些爬蟲代碼,題主有興趣可以參考
Fenghuapiao/PythonCrawler
你可以直接保存網頁源代碼到HTML文件,然後你想轉什麼格式都可以。爬蟲本就是為了抽離數據的,你抽離出來又要合併回去,這又何必呢
HTML比較合適
推薦閱讀:
※用 Python 寫爬蟲時應該注意哪些坑?
※爬蟲如何解決500錯誤?
※Python 學習完基礎語法知識後,如何進一步提高?
※用Python爬網頁需要了解什麼背景知識?
※python IDE 新手用什麼比較好?