有时,当尝试抓取 Instagram 媒体时,可以在 URL 末尾添加 (?__a=1)
例如:https: //www.instagram.com/p/CP-Kws6FoRS/ ?__a=1
返回的响应
{
"__ar": 1,
"error": 1357004,
"errorSummary": "Sorry, something went wrong",
"errorDescription": "Please try closing and re-opening your browser window.",
"payload": null,
"hsrp": {
"hblp": {
"consistency": {
"rev": 1005622141
}
}
},
"lid": "7104767527440109183"
}
Run Code Online (Sandbox Code Playgroud)
为什么会返回此响应?我应该如何解决此问题?另外,我们还有其他方法来获取视频和照片 URL 吗?
我的源代码如下:
<h3>Header3 (Start here)</h3>
<ul>
<li>List items</li>
<li>Etc...</li>
</ul>
<h3>Header 3</h3>
<ul>
<li>List items</li>
<ul>
<li>Nested list items</li>
<li>Nested list items</li></ul>
<li>List items</li>
</ul>
<h2>Header 2 (end here)</h2>
Run Code Online (Sandbox Code Playgroud)
我希望所有"li"标签跟在第一个"h3"标签之后,并停在下一个"h2"标签,包括所有嵌套的li标签.
firstH3 = soup.find('h3')
正确找到我想要开始的地方.
firstH3 = soup.find('h3') # Start here
uls = []
for nextSibling in firstH3.findNextSiblings():
if nextSibling.name == 'h2':
break
if nextSibling.name == 'ul':
uls.append(nextSibling)
Run Code Online (Sandbox Code Playgroud)
给我一个UL列表,每个都有我需要的LI内容.
摘录"uls"列表:
<ul>
...
<li><i><a href="/wiki/Agent_Cody_Banks" title="Agent Cody Banks">Agent Cody Banks</a></i> (2003)</li>
<li><i><a href="/wiki/Agent_Cody_Banks_2:_Destination_London" title="Agent Cody Banks 2: Destination London">Agent Cody Banks 2: Destination …Run Code Online (Sandbox Code Playgroud) R中是否有一种简单的方法来只提取HTML页面的文本元素?
我认为这被称为"屏幕抓取",但我没有它的经验,我只需要一种简单的方法来提取您在访问网址时通常在浏览器中看到的文本.
我问了一个关于实现抓取和保存网页的一般想法的问题.原始问题的一部分是:如何从Internet抓取并保存大量"关于"页面.
通过一些进一步的研究,我可以选择继续进行刮擦和解析(在下面列出).
今天,我遇到了另一个关于如何从Google搜索结果中删除的Ruby讨论.这为我的问题提供了一个很好的选择,它将节省爬行部分的所有工作量.
新问题是:在Python中,为了给定关键字刮取 Google搜索结果,在本例中为"关于",最后获取进一步解析的链接.有哪些方法和库的最佳选择?(以易于学习和易于实施的方式衡量).
ps在这个网站上,实现完全相同的东西,但关闭并要求钱以获得更多结果.如果没有开源可用,我宁愿自己做,也可以在同时学习更多Python.
哦,顺便说一句,从搜索结果中解析链接的建议会很好,如果有的话.仍然,易于学习和易于实施.刚开始学习Python.:P
最后更新,问题解决了.使用xgoogle的代码,请阅读以下部分中的说明,以使xgoogle正常运行.
import time, random
from xgoogle.search import GoogleSearch, SearchError
f = open('a.txt','wb')
for i in range(0,2):
wt = random.uniform(2, 5)
gs = GoogleSearch("about")
gs.results_per_page = 10
gs.page = i
results = gs.get_results()
#Try not to annnoy Google, with a random short wait
time.sleep(wt)
print 'This is the %dth iteration and waited %f seconds' % (i, wt)
for res in results:
f.write(res.url.encode("utf8"))
f.write("\n")
print …Run Code Online (Sandbox Code Playgroud) 我scrapy用来屏蔽网站上的数据.但是,我想要的数据不在html本身内部,而是来自javascript.所以,我的问题是:
如何获取此类案例的值(文本值)?
这是我试图筛选的网站:https: //www.mcdonalds.com.sg/locate-us/
我想要的属性:地址,联系方式,营业时间.
如果您在Chrome浏览器中执行"右键单击","查看源代码",您将看到HTML中无法使用此类值.
编辑
Sry paul,我做了你告诉我的事情,找到admin-ajax.php并看到了身体但是,我现在真的被困住了.
如何从json对象中检索值并将其存储到我自己的变量字段中?如果您可以分享如何为公众和刚刚开始scrapy的人分享一个属性,那将是一件好事.
到目前为止,这是我的代码
Items.py
class McDonaldsItem(Item):
name = Field()
address = Field()
postal = Field()
hours = Field()
Run Code Online (Sandbox Code Playgroud)
McDonalds.py
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
import re
from fastfood.items import McDonaldsItem
class McDonaldSpider(BaseSpider):
name = "mcdonalds"
allowed_domains = ["mcdonalds.com.sg"]
start_urls = ["https://www.mcdonalds.com.sg/locate-us/"]
def parse_json(self, response):
js = json.loads(response.body)
pprint.pprint(js)
Run Code Online (Sandbox Code Playgroud)
Sry进行长时间编辑,简而言之,我如何将json值存储到我的属性中?例如
***项目['地址'] =*如何检索****
PS,不确定这是否有帮助,但是,我使用cmd行运行这些脚本
scrapy crawl mcdonalds -o McDonalds.json -t json(将我的所有数据保存到json文件中)
我不能强调我的感激之情.我知道问你这个是不合理的,即使你没有时间这个也完全没问题.
我有一个合作伙伴为我创造了一些内容.
我可以使用我的浏览器访问该页面,但在尝试用户时file_get_contents,我得到了一个403 forbidden.
我尝试过使用stream_context_create,但这没有帮助 - 可能是因为我不知道应该去哪里.
1)我有什么方法可以抓取数据吗?
2)如果否,如果不允许合作伙伴配置服务器以允许我访问,那么我该怎么办?
我尝试使用的代码:
$opts = array(
'http'=>array(
'user_agent' => 'My company name',
'method'=>"GET",
'header'=> implode("\r\n", array(
'Content-type: text/plain;'
))
)
);
$context = stream_context_create($opts);
//Get header content
$_header = file_get_contents($partner_url,false, $context);
Run Code Online (Sandbox Code Playgroud) 我想抓一个网站以编程方式收集页面上任何flash元素内的任何外部链接.如果可能的话,我也想收集任何其他文本,但链接是重要的部分.这可能吗?完成此任务的免费软件库/服务将是更可取的,但如果没有,我如何自己完成任务?有可能获得源代码并从中拉出来吗?
是否有印度铁路提供的API搜索其列车网络,时间表等.有很多站点显示时间表等我搜索谷歌但无法找到有关铁路提供的Web服务或API的任何信息.数据抓取是唯一的方法吗?
我一直在研究迄今为止可用的无头浏览器,并发现HtmlUnit被广泛使用.与HtmlUnit相比,我们有什么替代HtmlUnit可能具有优势吗?
谢谢Nayn
screen-scraping ×10
python ×3
html ×2
animation ×1
api ×1
flash ×1
html5 ×1
htmlunit ×1
http-headers ×1
instagram ×1
javascript ×1
php ×1
r ×1
scrapy ×1
web-crawler ×1
web-scraping ×1