抓取ajax动态网页java( HTML2019-04-28编程之家收集整理的篇文章介绍)

优采云 发布时间: 2022-02-16 13:21

  抓取ajax动态网页java(

HTML2019-04-28编程之家收集整理的篇文章介绍)

  Web scraper - scrapy 中的动态 start_urls

  HTML 2019-04-28

  编程之家采集的这篇文章文章主要介绍了网页抓取工具——scrapy中的动态start_urls。编程之家的小编觉得挺不错的。 .

  我正在使用 scrapy 在 网站 上抓取多个页面。

  变量start_urls用于定义要爬取的页面。

  我最初从第一页开始,因此在文件 example_spider.py 中定义 start_urls = [first page]

  一旦我从第 1 页获得更多信息,我会找出要抓取的下一页是什么,然后相应地分配 start_urls。所以我要start_urls = [page 1, page 2, ..., Changes to page K]覆盖example_spider.py,然后再执行scrapy。

  这是最好的方法还是有更好的方法来使用scrapy API动态分配start_urls而不必覆盖example_splider.py?

  谢谢。

  解决方案

  start_urls 类属性收录起始 URL - 仅此而已。如果你提取要删除的其他页面的URL-从[another]回调的解析回调中获取对应的请求:

  class Spider(BaseSpider):

name = 'my_spider'

start_urls = [

'http://www.domain.com/'

]

allowed_domains = ['domain.com']

def parse(self,response):

'''Parse main page and extract categories links.'''

hxs = HtmlXPathSelector(response)

urls = hxs.select("//*[@id='tSubmenuContent']/a[position()>1]/@href").extract()

for url in urls:

url = urlparse.urljoin(response.url,url)

self.log('Found category url: %s' % url)

yield Request(url,callback = self.parseCategory)

def parseCategory(self,response):

'''Parse category page and extract links of the items.'''

hxs = HtmlXPathSelector(response)

links = hxs.select("//*[@id='_list']//td[@class='tListDesc']/a/@href").extract()

for link in links:

itemLink = urlparse.urljoin(response.url,link)

self.log('Found item link: %s' % itemLink,log.DEBUG)

yield Request(itemLink,callback = self.parseItem)

def parseItem(self,response):

...

  如果你还想自定义启动请求创建,请重写方法

  总结

  以上是编程之家为你采集的网页抓取工具——scrapy全部内容中的动态start_urls,希望文章可以帮助你解决scrapy程序开发中遇到的网页抓取工具——动态start_urls问题。

  如果你觉得编程之家网站的内容还不错,欢迎你把编程之家网站推荐给你的程序员朋友。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线