每次正则都有从头看一遍,
想了一个多小时了。
就把标题给正则出了
还有标题下下面的网址求问如何弄出来?
"title_hide": "给你的键盘加上无线 PPT 控制功能吧",
"date_modified": "2013-05-24T11:23:42.260648+08:00",
"url": "http://www.guokr.com/article/437046/",
"title": "给你的键盘加上无线 PPT 控制功能吧",
"small_image": "http://2.im.guokr.com/BFnIhI2uKOFbTt44KurAN3zMyaJjXmao9OciN4ayjkLgAQAASQEAAEpQ.jpg",
"summary": "这个项目也是一个很好的焊接技巧入门练习。",
"ukey_author": "m4tq2j",
"date_created": "2013-05-24T11:19:42.252645+08:00",
"resource_url": "http://apis.guokr.com/minisite/article/437046.json"
上面代码是 json 一角,需要的部分是 title_hide ,这个已解出,另一个部分是下下行的 url.
这是我写的代码:
import requests
import re
import json
from bs4 import BeautifulSoup
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
def gker(url):
html=requests.get(url, headers=headers).text
return html
j=gker('http://www.guokr.com/apis/minisite/article.jsonretrieve_type=by_subject&subject_key=diy&limit=20&offset=18&_=1484373021355')
j2=str(json.loads(j)) #必须转换成字符串才能正则匹配。
titles=re.findall(r"(?<='title_hide':).*?(?=,)",j2,re.M)
print(len(titles))
for title in titles:
print(title)
urls=re.findall(r"'url':(.*?),.?'title'",j2,re.M) #这里不对,不知道如何弄出来了
print(len(urls),urls)
想了一个多小时了。
就把标题给正则出了
还有标题下下面的网址求问如何弄出来?
"title_hide": "给你的键盘加上无线 PPT 控制功能吧",
"date_modified": "2013-05-24T11:23:42.260648+08:00",
"url": "http://www.guokr.com/article/437046/",
"title": "给你的键盘加上无线 PPT 控制功能吧",
"small_image": "http://2.im.guokr.com/BFnIhI2uKOFbTt44KurAN3zMyaJjXmao9OciN4ayjkLgAQAASQEAAEpQ.jpg",
"summary": "这个项目也是一个很好的焊接技巧入门练习。",
"ukey_author": "m4tq2j",
"date_created": "2013-05-24T11:19:42.252645+08:00",
"resource_url": "http://apis.guokr.com/minisite/article/437046.json"
上面代码是 json 一角,需要的部分是 title_hide ,这个已解出,另一个部分是下下行的 url.
这是我写的代码:
import requests
import re
import json
from bs4 import BeautifulSoup
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
def gker(url):
html=requests.get(url, headers=headers).text
return html
j=gker('http://www.guokr.com/apis/minisite/article.jsonretrieve_type=by_subject&subject_key=diy&limit=20&offset=18&_=1484373021355')
j2=str(json.loads(j)) #必须转换成字符串才能正则匹配。
titles=re.findall(r"(?<='title_hide':).*?(?=,)",j2,re.M)
print(len(titles))
for title in titles:
print(title)
urls=re.findall(r"'url':(.*?),.?'title'",j2,re.M) #这里不对,不知道如何弄出来了
print(len(urls),urls)