<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
喜歡用Python寫指令碼的小夥伴可以跟著一起寫一寫呀。
編寫環境:Python2.x
需要用到的模組如下:
import requests import re
本文將用re正則進行講解,如果你用Xpath也可以
首先我們要選取搜尋引擎(其他搜尋引擎原理相同)
以bing為例:Cn.bing.com
首先分析bing翻頁機制:
https://cn.bing.com/search?q=內容&first=0 第一頁 https://cn.bing.com/search?q=內容&first=10 第二頁 https://cn.bing.com/search?q=內容&first=20 第三頁
頁數 = First*10
分析完畢,我們來請求看一下
def req(): url = 'https://cn.bing.com/search?q=小陳&first=0' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0'} req = requests.get(url,headers=headers) html = req.content print html
Ok,沒毛病
分析需要採集的url在哪個位置
得出正則:(.*?)
正規表示式學習:(百度搜:python 正規表示式)
def reurl(): urlr = r'<cite>(.*?)</cite>' reurl = re.findall(urlr,html) print reurl
就在我請求第二頁的時候發現了問題
可以看到請求內容和第一頁一樣,有某種驗證機制
一般情況下驗證機制,表示特定引數
經過多次測試,發現缺少 Cookie: _EDGE_V=1;
請求正常,大致已經完成
接下來只需要給關鍵詞和頁數變數就ok了
再搜尋site:baidu.com 又出現了問題
於是修改正則為:
'target="_blank" href="(http.*?..*?..*?)" h="'
有很多我們不想要的結果,我們再來遍歷下采集的urls
做一下處理
正則為:
(http[s]?://.*?)/
程式碼為:
def url(): for url in urls: urlr = r'(http[s]?://.*?)/' url = re.findall(urlr,url) print url
print url 改為 print url[0] 再進行處理一下
可以看到下面還有重複的url,對url去重一下
def qc():#去重複 for url in url_ok: if url in url_bing: continue url_bing.append(url)
接下來我們要讓他自動儲存到url_bing.txt
with open('url_bing.txt','a+')as f: for url in url_bing: print url f.write(url+"n") print "Save as url_bing.txt"
#!/usr/bin/python #-*- coding:utf-8 -*- import requests import re urls = [] url_ok = [] url_bing=[] def req(q,first): global html url = 'https://cn.bing.com/search?q=%s&first=%s'%(q,first) print url headers = { 'Host':'cn.bing.com', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0', 'Cookie': '_EDGE_V=1;' } req = requests.get(url,headers=headers) html = req.content def reurl():#正則匹配url urlr = r'target="_blank" href="(http.*?..*?..*?)" h="' reurl = re.findall(urlr,html) for url in reurl: if url not in urls: urls.append(url) def url():#url二次處理 for url in urls: urlr = r'(http[s]?://.*?)/' url = re.findall(urlr,url) url_ok.append(url[0]) def qc():#去重複 for url in url_ok: if url in url_bing: continue url_bing.append(url) if __name__ == '__main__': q = raw_input('nkey:') page = input('page:') for first in range(0, page): req(q, first * 10) reurl() url() qc() with open('url_bing.txt','a+')as f: for url in url_bing: print url f.write(url+"n") print "Save as url_bing.txt"
以上就是PyHacker編寫URL批次採集器的詳細內容,更多關於PyHacker批次採集URL的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45